◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

マイコンソフト 悩み事相談室 2 [無断転載禁止]©2ch.net YouTube動画>12本 ->画像>3枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/denki/1469905691/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1HD6801PV01
2016/07/31(日) 04:08:11.65ID:BsPuxxLO
.
  ∧ ∧    
  ( ´・ω・) < コンフィグって何? 昆布なら知ってる。  ボラチルって何? ボラは魚だよ。
  ( ∪ ∪   ,.-、     ,.-、   ,.-、     ,.-、
  と__)__)  (,,■)   (,,■)  (,,■)   (,,■)
         PIC    AVR  H8    ARM

  学校でC言語を習ったことがあるので「楽勝でしょ」って、マイコンを始めたけど、
  わからないことだらけ。誰か教えて!

  PCとは、別世界のマイコンのソフト。難しいよね。

  ツールの使い方、ツールの設定、マイコン特有のC言語の書き方、
  「デバッグモードにプログラミングモード。何?」 Eclips, Emacs って何?
  VBAしか知らないよぉ、という人まで、
  各社マイコンに関するマイコンソフト相談室です。

  質問者は、「初心者質問スレ」の>>1を見て、分かり易く質問を書いてね。
  回答者は、威張らない、バカにしない、言葉使い注意で、親切に教えてあげてね。

  あっ、そうそう。 
  ハードウェアに関する質問は、それぞれのマイコンのスレに、達人がいるから。

  過去スレ
    1 2014/09/11〜

  では、質問、ドゾ〜
2774ワット発電中さん
2016/08/01(月) 10:23:24.93ID:tkYF7YVO
2ゲット
3774ワット発電中さん
2016/08/03(水) 23:25:13.60ID:6uZe762v
3
4774ワット発電中さん
2016/08/04(木) 06:28:45.38ID:vKRhhrpG
タヒ
5774ワット発電中さん
2016/08/05(金) 23:48:54.77ID:EkITNEpO
あげ
6774ワット発電中さん
2016/08/09(火) 23:05:06.31ID:y20E6Apk
前スレで出ていた値の範囲の話で便乗質問なのですが、
私の場合、温度センサーの値をADCで読んでラジコンサーボモーターで
指針式の温度計を考えていました。値の範囲の変換に悩んでいたところ
こちらのスレを見つけて試したところ変換式の所までは問題ないのですが
その後何らかの問題が有り動作しなく悩んでおります。
変換式を通した後の値は7セグに表示させてみると思い通りの値になっていることを
確認しました。

ADCで読んだ値は kion変数に読み込んでいます。
ラジコンサーボは10msec周期のパルスのパルス幅を0.7から2.6msecで可変です。
細かく制御できるようにμsecで計算しています。

int kion;
double parusu;
int syuuki

while(1)
{
kion = ADC_READ(0); //AN0を読む
parusu = (double)kion/10000*(300-2000)+2000;
syuuki = 10000 - parusu;

PORTB.B5 = 1;
for(i = 0; i<= parusu; i++){delay_us(1);}
PORTB.B5 = 0;
for(j = 0; j<= syuuki; i++){delay_us(1);}
}

ADCのための時間やその他の計算時間分だけ周期に誤差がでますが
サーボの周期は少々ずれても良いので問題なしとします。

実行してみるとオシロスコープで見る限りパルス(ポートB5のオン時間)が
可変できていない様なのですがどうしてなのか解りません。

アドバイスなどよろしくお願いします。
7774ワット発電中さん
2016/08/10(水) 00:10:56.00ID:+89cJYyL
>>6
>可変できていない様
それはあなたの感想であって、他人に伝えるための情報ではない。
on/off期間それぞれが何mSecになっているのか、といった
発生している事実を伝えることを心がけるべきである。(これは一般論である)

そして質問する前にその事実とコードを見比べれば、
たぶん
>(j = 0; j<= syuuki; i++)
が間違っているせいだろうと自分で気づけるようになる。
# もっとも、これは俺が勝手に起こっていそうな事実を
# コードから妄想しただけだが。
8774ワット発電中さん
2016/08/10(水) 00:26:51.27ID:bRv6riQX
人の話を聞かない人っているよね
9774ワット発電中さん
2016/08/10(水) 00:44:04.45ID:vV5qnIe3
for(j = 0; j<= syuuki; i++){delay_us(1);}

syuukiが負の値をとっていない限り、無限ループ?
1回ONのパルスが出て、OFFになったままループってか。
波形が更新されないから可変できていないように見えた?
10774ワット発電中さん
2016/08/10(水) 01:39:54.02ID:QBsHbtA5
問題起きた時くらいは、デバッガでステップ実行しながら考える習慣は
つけといたほうがいいと思うな
まあ、最近はarduinoとかみたいな書いて走らせるだけ、みたいな
環境もあるけど
11774ワット発電中さん
2016/08/10(水) 13:30:38.38ID:we7bW70P
前スレの議論を全スルーしたコード出してくるとは・・・まるで成長する気が無い
12774ワット発電中さん
2016/08/10(水) 18:52:16.50ID:RKeMyTjK
好きなだけ続けるのがよろしい
13774ワット発電中さん
2016/08/11(木) 00:46:18.30ID:V/EZYqdU
parusu という変数名が良くないのかもしれん。
パルス= pulse
本=Book≠Bukku
14774ワット発電中さん
2016/08/11(木) 01:54:24.27ID:jGYGAZyq
for(i = 0; i<= parusu; i++){delay_us(1);}

興味あってmega328と仮定してシミュレータ通してみたんだが
1usのつもりの1ループに8us以上かかってるw
15774ワット発電中さん
2016/08/11(木) 02:02:38.18ID:mB+v0n4U
>>14
そこは次の質問用にキープしてあったんだろうにw
16774ワット発電中さん
2016/08/11(木) 11:50:44.81ID:qJXUgWqe
「君のやり方で正しいよ」となるまで続くことだなぁ
17774ワット発電中さん
2016/08/11(木) 12:47:40.79ID:JrOTLU2d
これ普通にtimer使って
timer0を10ms周期で動作させて割り込みの中でポートをオンさせる。
timer2を必用なパルス幅の時間で動作させてPR2の値で時間を決めて、割り込みの中でポートをオフさせる。
とかじゃ駄目なの?
timer多用して割り込み多いと時間の正確性崩れたっけ?
18774ワット発電中さん
2016/08/11(木) 13:47:42.62ID:jGYGAZyq
なんでそんな面倒なことせにゃならん。
タイマー1個をPWM動作させればいいだけ。

しかし質問主はタイマー使うスキルないし覚える気もないんだとよ。
前スレ読んできな。
19774ワット発電中さん
2016/08/11(木) 23:33:51.85ID:AGqAaPQq
>>6
forループで回すんじゃなくて、直接delay_us関数の引数にparusuやらsyuukiやらをぶち込んだ方がいいと思う。
20774ワット発電中さん
2016/08/12(金) 08:29:21.64ID:23gzkauU
質問を書いた直後に間違いに気づいて>>6も出てきにくくなっているんじゃないかと。
リストで気づくことも大切だけど、デバッガを使う習慣も必要ですね。

それよか、この場合は>>18に同意です。
タイマーのないデバイスでも動くように、という条件があるなら別ですが、そういう縛りに拘る時代でもないですよね。
21774ワット発電中さん
2016/08/12(金) 11:27:03.26ID:rLZz2tlb
>>6は arduino みたいだから、デバッガ使えないんだろうけど
逆にPWMのAPIはあるから、それ使えばいいっていうのはもっともだけど
プログラムの元の記述を尊重した上でアドバイスするとしたら

for(i = 0; i<= parusu; i++){delay_us(1);} → delay((int)parusu);
for(j = 0; j<= syuuki; i++){delay_us(1);} → delay(syuuki);
22774ワット発電中さん
2016/08/12(金) 12:34:07.51ID:92Fhi7Me
>>18
タイマー1個でどうやってPWMするの?
23774ワット発電中さん
2016/08/12(金) 13:06:56.02ID:cnKhuEp8
PICでもAVRでもH8でもPWM付いてるだろ?
24774ワット発電中さん
2016/08/12(金) 15:28:17.37ID:nw8ucrBG
>>22
マイコンで言うところのタイマならPWM出力あるだろ。
25774ワット発電中さん
2016/08/12(金) 16:15:59.66ID:OOVMqm1U
arduinoってお手軽かもしれないけどデバッグ環境が糞だよね。
チップ自体には素晴らしいデバッグ機能備わっているのに。
26774ワット発電中さん
2016/08/12(金) 19:12:47.17ID:du2V288Y
>>24
あれは細かく調整できないしゃん。
Duty1%刻みだし。
タイマー2個の方が細かい調整可能。
27774ワット発電中さん
2016/08/12(金) 19:17:11.96ID:2KoiV/6K
0%や100%ができないしね。
PWMモジュールより、タイマと変数が簡単
28774ワット発電中さん
2016/08/12(金) 19:20:07.05ID:OOVMqm1U
>>26
ネタならつまらんし、マジで言ってるなら10年ROMってろ。
29774ワット発電中さん
2016/08/12(金) 20:10:15.76ID:23gzkauU
>>26
8ビットタイマーでも1%刻みってことはないですよね。
>>27
どうしても0%、100%が必要なケースならやりようはあります。
30774ワット発電中さん
2016/08/12(金) 20:17:41.43ID:8rnLt7qT
なんでforループやdelay使うやり方を教えるんだろうね?
割り込みでカウントして、カウントアップしたら処理させれば
マルチタスクまで共通で使えるだろ
31774ワット発電中さん
2016/08/12(金) 20:22:57.21ID:OOVMqm1U
フリーランカウンター利用したwaitルーチンとかいくらでも紹介されてるけど、
arduinoなんかに標準としてライブラリ化されてないから初心者に浸透しなんだね。
32774ワット発電中さん
2016/08/12(金) 20:42:31.39ID:nw8ucrBG
タイマは便利に作ってあるし、便利に使えるんだけどなぁ。
33774ワット発電中さん
2016/08/12(金) 20:47:02.81ID:MY5a4YkO
ビジーウェイトのチューニングする労力でタイマ割り込み覚えたほうがいいとは思うけど
趣味なら好きにやるのがいいよ
34774ワット発電中さん
2016/08/12(金) 21:47:41.99ID:kYIXIr3I
タイマー教える前に、for文の書き方を教えるべき。
35774ワット発電中さん
2016/08/12(金) 23:13:02.59ID:cnKhuEp8
アセンブラで書けばそんなこと知らなくても困らないよ。
36774ワット発電中さん
2016/08/12(金) 23:16:02.87ID:xlYRKcIm
コンプしてフラグが起ったらジャンプ!
そんなソースを書いていたらわけわかんなくなった時代が私にも有りました・・・
37774ワット発電中さん
2016/08/13(土) 00:29:06.31ID:RSW9pQLf
傷ついた動物に群がるピラニアのようなスレだな。
なぜ、相手の歩みに合わせられないんだろう?
馬鹿ばっか?


>>6
とりあえず、
for(j = 0; j<= syuuki; i++)
が間違ってる。
これじゃj=0のままなので、ここから抜けられない。
38774ワット発電中さん
2016/08/13(土) 00:50:19.13ID:XoFCXjxv
相手が歩かないからみんなが一生懸命押してるように見えるが。
39774ワット発電中さん
2016/08/13(土) 00:56:46.77ID:6AjLyUIP
競歩のスペシャリストが、素人相手に「いいからさっさと歩けよ」って引きずり回しているように見えるが。
40774ワット発電中さん
2016/08/13(土) 01:04:20.56ID:IT8zj5ch
歩ける人が歩かない人に、「こんな感じで」って言っているようにも見える。
41774ワット発電中さん
2016/08/13(土) 01:25:25.64ID:aTlAWl1J
ご当人が何も言わない以上、想像でしかない
42774ワット発電中さん
2016/08/13(土) 02:13:18.14ID:eO2b4QxZ
状態遷移でプログラムすれば、タイマー割り込みの数値だけで流れが管理出来て、改造も楽々なんだけどね。

__delay()だと、その待ち時間中に、スイッチ取り込みができないから、早晩、限界が来るね
43774ワット発電中さん
2016/08/13(土) 02:22:22.45ID:16VSX5oS
>>29
ごめん勘違いしてた、255分の1の細かさで変えられるのか。
44774ワット発電中さん
2016/08/13(土) 02:35:37.52ID:XoFCXjxv
16bitタイマーで10ms周期のPWMやるなら、
クロックソース4MHzで0.25us分解能の波形出せる。
タイマー2個も使う意味ないでしょ?
45774ワット発電中さん
2016/08/13(土) 11:19:26.40ID:ltAkSeXH
>>44
その通り。
一個でやったほうが、間違いがない
46774ワット発電中さん
2016/08/13(土) 15:54:02.04ID:aYJY9NV8
タイマー云々言ってる人たちは、質問者とは別世界の議論してるような
気がするなあ
arduino前提だと、PWMはanalogWrite()ってAPIでできるから
タイマーの知識とか不要なんだけど・・・

for文の間違い指摘も指摘自体は正しいんだけど、delay_us()を使うときに
delay_us(1)を多数回呼び出すようなことしたら、誤差多くなるから
ダメってことも同時に教えてやらないと・・・
47774ワット発電中さん
2016/08/13(土) 16:20:33.36ID:XoFCXjxv
>>46
ならなぜおまえは今更な書き込みしてんだよ
ダメってことはすでに前スレでレスがついてる。

それに質問者は10ms周期のPWMをご所望だ。
analogWrite()を10ms周期に変更するのはタイマーの知識は不要か?
それ以前にarduinoかどうかすら質問者から提示されていない。
48774ワット発電中さん
2016/08/13(土) 16:33:30.63ID:eO2b4QxZ
>それ以前にarduinoかどうかすら質問者から提示されていない。
なるほど、そうだったのか。
49774ワット発電中さん
2016/08/13(土) 18:04:30.01ID:6AjLyUIP
質問者は精度についての回答は求めていない。
あくまでDUTYが変化しないのはどうしてか、を聞いている。
50774ワット発電中さん
2016/08/13(土) 19:05:56.90ID:eO2b4QxZ
>あくまでDUTYが変化しないのはどうしてか、を聞いている。
なるほど、ほるなど。そうだよね。
51774ワット発電中さん
2016/08/13(土) 19:11:04.76ID:ZZFdn9V/
そろそろ丸4日
返事なしか
釣られたな、おまいら
52774ワット発電中さん
2016/08/16(火) 09:01:10.27ID:kq78AzwK
教えて下さい。
テラタームをUSBでターミナルとして使っています。
いったんUSBが通ってマイコンとのやりとりができる状態になってから、
USBを抜いて、再度USBを差し込むと、テラタームに文字が表示されなくなります。

USBを再度差し込んだときも、最初と同じCOM番号になっているのですが、
テラタームに文字が表示されません。
デバッグの途中でこれが起こると、とても焦ってしまいます。
しかしテラタームを再起動すると、再び使えるようになります。

いったんUSBが途切れるとテラタームが使えないのはなぜでしょうか?
COM番号は再度挿されたときも同じ番号で通っているので、
再び文字を表示してくれればいいのにと思います。
53774ワット発電中さん
2016/08/16(火) 09:46:31.91ID:eZ4+21dk
>>52
USBシリアルのデバイスを抜いて、挿しなおしたときに、Teratermがエラーになるって話ですね。
ちょっとくだけた表現で、正確な用語ではないですが次のような流れになります。

(1)USBシリアルのデバイスを挿す。
(2)OSがシリアルデバイスとして認識する。
(3)シリアルデバイスは蓋を閉ざした待ち状態。このままではプログラムからは使えません。
(4)Teratermを起動
(5)Teratermがシリアルデバイスをオープンして初期設定をする。この手続きで初めてシリアルデバイスが使えるようになります。
(6)Teratermで通信できます。
(7)USBシリアルのデバイスを抜く
(8)USBシリアルのデバイスを挿す。ここから(2)に戻ります。
(2')OSがシリアルデバイスとして認識する。
(3')シリアルデバイスは蓋を閉ざした待ち状態。このままではプログラムからは使えません。

Teratermは、(5)の段階ですでにデバイスが使える状態であると思い込んでいますから、
蓋を閉ざした状態のシリアルデバイスと使おうとしてエラーになってしまいます。

俺は、上のような状況でエラーになったら再起動せずに
ファイルメニューの「接続断」→ファイルメニューの「新しい接続」
をやっています。
54774ワット発電中さん
2016/08/16(火) 11:02:21.26ID:kq78AzwK
>>53
なるほど、新規の接続ですね。ありがとうございます。
やはり「自動的に復旧」と言うわけには、行かないみたいですね。
「再接続」みたいなショートカットがあると、便利ですね。
ありがとうございました。
55774ワット発電中さん
2016/08/17(水) 15:22:13.67ID:iuMIUad0
>>45
普通、タイマー + アウトプットコンペアだろ?
56774ワット発電中さん
2016/08/17(水) 18:13:01.79ID:PjrIsm22
>>55
普通はそうなんだけど、18で出ているようにタイマを覚える気がなさそうだから、普通を言っても仕方ない。
ともかく思ったようにやってみて、うまく行かなければ次の手を考えるというのもありだろう。個人的な興味でやっているならそれもよし。
57774ワット発電中さん
2016/08/17(水) 18:59:44.32ID:t8aC9Vry
>>55
それってタイマー2つ使っても変わらなくね?
58774ワット発電中さん
2016/08/17(水) 19:49:32.11ID:2hnY9Usg
どうしても2つ使いたいんならそれでもいいんだよ。
俺は”個人的に”そんなもったいなくめんどくさいことしたくないけど。
59774ワット発電中さん
2016/08/23(火) 22:54:08.55ID:qLPigVYc
ソースコードのバージョン管理ってどうしてる
Gitやsubversion?
それともフォルダで分けてる?
60774ワット発電中さん
2016/08/24(水) 16:24:45.71ID:Tf9GiClY
ファイル名+日付+連番.拡張子 だけど、ビルドしたときに、ファイルがありませんが頻発
なんかいい方法ください
61774ワット発電中さん
2016/08/24(水) 18:31:04.78ID:+HILJIBW
svn使ってる
62774ワット発電中さん
2016/08/24(水) 20:47:45.58ID:TpAWXL+u
mbed IDEの内蔵のやつ
内部的にはhgらしい
63774ワット発電中さん
2016/08/24(水) 21:25:06.66ID:w84CTCxT
フォルダで分けて末尾にバージョン番号だな〜
ただ、派生バージョンが増えて親子関係がぐちゃぐちゃ...
先輩にGitの導入を勧めても食わず嫌いで断りたわorz
64774ワット発電中さん
2016/08/25(木) 02:10:39.68ID:nSgHa+RO
コンパイラのBuild回数をファイル名に入れてくれる、とか無いだろうか
65774ワット発電中さん
2016/08/25(木) 13:22:45.86ID:wd+aLd5z
Windows10にしてE8aが動作しなくなりました。でも添付のケーブルを短くすると動いて
います。
以前Xpの時は3mの延長ケーブル(単なる延長ケーブルでリピーター機能なし)を
つけても動いていました。
 なにが原因でしょうか?
66774ワット発電中さん
2016/08/25(木) 16:30:40.77ID:IRa+MIjh
ファイル名やフォルダ名て分けるとか...
めんどくさくない?
67774ワット発電中さん
2016/08/25(木) 18:55:41.75ID:3XJzqCvS
mikroCでプログラム修正してコンパイルしてもHEXがなぜか更新されないバクって経験した人います?
2時間悩んでHEXが変わってないこと発見した。
新しいプロジェクトでコピペして上手く行った。
68774ワット発電中さん
2016/08/26(金) 04:19:58.89ID:Gvc0XHIW
>>67
それはよくある。
フォルダー丸ごとコピーすると、保存先のパスなど覚えていて、
オリジナルを上書きということも、多々ある
69774ワット発電中さん
2016/09/05(月) 12:01:22.93ID:gUEBG+7G
質問が2つあります。

1つ目
割込処理に飛ぶ前に、レジスタなどを待避し、
割込から戻る時に、待避したレジスタを戻す、をすると思いますが、
Cの場合は、特に書いていません。これは、
 A) コンパイラーが、裏でちゃんと push, popを書いてくれている。
 b) Cの場合は、レジスタ待避は要らない
のどちらでしょうか?

2つ目
割込中に、別の割込が入って、その別の割込に飛ぶ場合、
さらにレジスタの待避を行うのでしょうか?
すると、割込に待避するたびに「積んで」戻る度に「降ろす」ということを
することになります。
すると、裏のレジスタが いくつも必要になると思うのですが、
それはどのように処理されているのでしょうか? RAMに取る、とかでしょうか?
70774ワット発電中さん
2016/09/05(月) 12:19:53.12ID:nCYP7/JI
>>69
> 1つ目
A) です。この関数は割り込みで使いますっていう指定をするでしょ。アレがそうです。

> 2つ目
push、pop とか言ってる割にはスタックのことを知らない?
もちろん割り込みの都度退避する必要があります (でないと戻って来られない)。
なので、当然レジスタだけでは足りなくなるので、メモリ (スタック) に退避します。
まともに退避していくとメモリも時間も食うので、割り込みで使用するレジスタを制限したりして
高速化を図れるコンパイラもあったりします。
71774ワット発電中さん
2016/09/05(月) 13:14:52.83ID:nd7cjyul
>>69
>割込処理に飛ぶ前に、レジスタなどを待避し
この表現は(実際にはちゃんと理解してるのかもしれないけど)間違い
飛ぶ前(割り込まれる関数)は、どこで割り込まれるかは予測できないから
レジスタを退避とかできない

但し、CPUによってはNMIがかかった時などには、自動的に(ソフトに頼らず)
全レジスタを退避するようになってるのもあったような気がする
72774ワット発電中さん
2016/09/05(月) 13:29:48.25ID:9Mhj6fNA
「飛んだ後の割り込み処理の中で、割り込み内で使用する(破壊する)レジスタを退避する」ですな
73774ワット発電中さん
2016/09/05(月) 13:38:41.95ID:qgpggo65
Cortex-Mとかは割り込みはほとんどハードウェアがやってくれるから本当にCだけで書ける
って言ってる
74774ワット発電中さん
2016/09/05(月) 13:43:56.62ID:gUEBG+7G
>>70
ありがとうございます。
>当然レジスタだけでは足りなくなるので、メモリ (スタック) に退避します。
スタックというのは、計算の途中で一旦仮に置くメモリーですよね。
待避もあそこを使うんでしょうか。
ということは、RAMは、いろいろな用途で使われるんですね。
・配列変数
・普通の変数
・画像の内容の値
・レジスタの待避 など。
アセンブラだと、その変は全部自分で書かないといけないのでしょうか?
unsoigned char dimA[] = "ABCDEFGH";
   100番地 = 0x41
   101番地 = 0x42
     :        という感じ。
待避も同じで、
   スタックの最終番地 = ○○レジスタの値
   スタックの最終番地+1 = △三角レジスタの値
     :        という感じ。

タイプミスしたら、えらいことになりそうな気がします。

>>71
ありがとうございます。
>割り込まれる関数は、どこで割り込まれるかは予測できない
なるほど。ということは、新しく割り込んだプログラムの尖頭で待避をして、
最後で戻すということですね。
75774ワット発電中さん
2016/09/05(月) 13:56:57.41ID:dGH4JlCq
Cで割り込みは定義されてないのでインラインアセンブラで書く。
または各CPUメーカーのコンパイラには ISR(...){//割り込みの時の処理}
などの割り込み処理関数が用意されている。
76774ワット発電中さん
2016/09/05(月) 14:26:28.21ID:gUEBG+7G
>>75
ありがとうございます。
Cでは、いつも __isr... の関数を使って書いています。
楽ちんだな、と思っていますが、
実際はどのように、どこに格納されているのか興味があり、質問しました。
どうもありがとうございました。
77774ワット発電中さん
2016/09/05(月) 14:56:46.93ID:dGH4JlCq
>>76
割り込み通知(割り込みの種類によって番号がふられている)
→CPU(割り込み許可なら)
→現在の状態や戻りアドレスをレジスタやスタックに退避
→ROMに格納されている割り込み関数への配列[該当する番号](=関数の実体があるアドレス)
→そのアドレスに飛び、割り込み関数実行
→復帰
78774ワット発電中さん
2016/09/05(月) 15:45:24.99ID:gUEBG+7G
>>77
ありがとうございます。
分かり易い説明で、ありがとうございます。

その手順の中で、
>→CPU(割り込み許可なら)
   1)この部分は、ハードウェアでプログラム(以下のように配線)されて、
    自動的に遷移する、で正しいでしょうか?
      各種割込発生信号−−−AND−−−−−−−−−−−−AND−−−−CPUの端子
      その割込許可bit−−    全体割込許可bit−−

>→現在の状態や戻りアドレスをレジスタやスタックに退避
   2) ここもハードウェアで自動的に

>→ROMに格納されている割り込み関数への配列[該当する番号](=関数の実体があるアドレス)
   3) ここもハードウェアで自動的に

>→そのアドレスに飛び、割り込み関数実行
   4) ここもハードウェアで自動的に

>→そのアドレスに飛び、割り込み関数実行
   5) ここから、ソフトウェアで制御

>→復帰
79774ワット発電中さん
2016/09/05(月) 16:12:33.59ID:nd7cjyul
CPUの種類を限定して聞いたほうがいいかも
80774ワット発電中さん
2016/09/06(火) 02:38:03.92ID:lKmFEfIV
割り込み関係は、ホントCPU依存なんで限定しないとウソ説明になっちゃう
普通の関数コールでも、8051とかPICのCコンパイラは、スタックとか
使わなかったりするので
81774ワット発電中さん
2016/09/07(水) 15:03:32.87ID:9ZtNCJPr
8051とかPICのCコンパイラだと、reentrant指定しない関数内の
ローカル(自動)変数は、スタックじゃなくて固定領域内に
置くようになってるみたいだね
フロー解析して、同じ領域を複数の関数で使いまわすように
うまいことやってる
82774ワット発電中さん
2016/09/07(水) 17:39:03.90ID:/zjzWDHW
PICのMid-Rangeじゃスタック自体が存在しないからね
83774ワット発電中さん
2016/09/07(水) 23:00:28.56ID:0k/kcUDo
>>82
素のMid rangeは連続したRAM領域が殆ど取れないからな。
84774ワット発電中さん
2016/09/07(水) 23:52:01.22ID:9ZtNCJPr
PICのアーキテクチャで、Cが使えること自体がビックリなんだけど
同時に、そこまでしてPICに拘らなくても・・・っていうのが率直な感情だな
85774ワット発電中さん
2016/09/08(木) 11:08:49.61ID:sDS4nZS9
> PICのMid-Rangeじゃスタック自体が存在しないからね
そう言えば、AVRも大昔の90S1200のスタックが3レベルしか無かった。
それを知ったときに、
 俺の「蝶のように舞い蜂のように刺す」華麗なスタックコントロールテクニックを発揮できないじゃないか、
 こんなもの存在価値ねぇよ。
と思ってしまった(笑)
86774ワット発電中さん
2016/09/08(木) 11:55:38.57ID:pHymXzaI
ハードウェアスタックのマイコンって、関数のネストが深くなってスタックに保存しきれなくなる場合って
コンパイラやツールが警告してくれるの?
プログラマーの責任で管理?
87774ワット発電中さん
2016/09/08(木) 12:21:05.65ID:RYgbosAt
>>86
エラー出すか、力業でなんとかさせるかを選べる。インライン展開するとか。
88774ワット発電中さん
2016/09/08(木) 13:07:48.85ID:b4P0X/E0
ハードウェアスタックと ソフトウェアスタックって、
結局のところ、レジスタをメモリーに待避/復元することですよね?
ソース→ディステネーションが同じなのに、ソフトとハードがあるのですか?
ハードウェアで、スタックのために大量に用地買収すれば、ソフトウェアスタックは
要らないと思うのですが、どうなんでしょうか?
89774ワット発電中さん
2016/09/08(木) 16:32:50.49ID:sDS4nZS9
たとえばFORTHではソフトウェアスタックが必要というか、使用している。
90774ワット発電中さん
2016/09/08(木) 21:58:45.11ID:XozhvqMo
>ソース→ディステネーションが同じなのに、ソフトとハードがあるのですか?

CPUによっては同じじゃ無い物もある
91774ワット発電中さん
2016/09/09(金) 13:19:55.99ID:lBUwRAbE
MCUでのハードウェアスタック/ソフトウェアスタックに対する私の認識は

・ハードウェアスタック
PUSH、POP、CALL命令や割り込みなどでMCUが使用するFILOバッファ
(もちろんMCUだけでなくプログラマも使用できる)
バッファポインタはSPレジスタ、バッファ領域はプログラマが指定

・ソフトウェアスタック
プログラマが独自に用意したFILOバッファ
バッファポインタ、バッファ領域はプログラマがレジスタやメモリに確保
オートプリデクリメント/オートポストインクリメント機能付きレジスタ間接メモリアクセス命令などがあれば
1命令でアクセスできて便利

ただしCPUの中には例外もある
92774ワット発電中さん
2016/09/11(日) 08:19:04.62ID:Hh7e2E13
ぶっちゃけ、リングバッファに比べたFILO、FIFOなんてあまり使わないよな
93774ワット発電中さん
2016/09/11(日) 11:55:13.67ID:8aI6kLtn
RS232の、送受信のりんごバッファって、
めんどくさいですよね。
94774ワット発電中さん
2016/09/11(日) 12:53:52.42ID:f8+zmymN
リングバッファとFIFOの実装上の違いって、何なんでしょ。
95774ワット発電中さん
2016/09/11(日) 13:44:26.40ID:rSFvjBSt
FIFOは形式の書き込み読み出しの順序を示す言葉で
リングバッファはその実装例じゃないの
96774ワット発電中さん
2016/09/11(日) 13:45:07.00ID:rSFvjBSt
日本語がおかしいorz
「形式の」はいらない
97774ワット発電中さん
2016/09/11(日) 15:51:18.32ID:OxQ3H8gL
FIFOを作るとしたらシフタを並べるのが簡単かな
データが動くイメージ

FIFOのデータが大きくなると、制御が複雑になるけどメモリマクロを使う方がサイズ的に小さくできるはず
しかも双方向対応可能なメモリマクロがいいかも
データは動かない、ReadとWriteそれぞれのアドレスを示すポインタ値が変わるイメージ
この場合はFIFOもリングバッファも回路はほぼ同じで制御端子の使い方が変わるだけでよさそうだが
98774ワット発電中さん
2016/09/11(日) 15:56:28.91ID:f8+zmymN
むう。俺が>>92を読めてないのかな。
>ぶっちゃけ、リングバッファに比べた「ら」FILO、FIFOなんてあまり使わないよな
ってな感じで「ら」を補ったんだけど。
99774ワット発電中さん
2016/09/11(日) 18:06:12.88ID:Hh7e2E13
ゴメン、「ら」を抜かしてたね
リングバッファとFIFOの違いは、単純にバッファの末尾と先頭がつながっている(リング)かどうかでは?
あるいはリングバッファはポインタを二つ(格納、取り出し)使うのが標準的とか?
100774ワット発電中さん
2016/09/11(日) 21:50:20.31ID:f8+zmymN
ええええ?
FIFOってリングバッファで実装するのが一般的ではないの?

>FIFOを作るとしたらシフタを並べるのが簡単かな
>データが動くイメージ
これはやったことがないな。

>メモリマクロを使う方がサイズ的に小さくできるはず
んー。ここマイコンソフトのスレだよな。
101774ワット発電中さん
2016/09/11(日) 22:54:32.85ID:BT9PKBRa
>92,99
FIFOはバッファを取り扱う形式的な総称で、その下にソフトで実装したリングバッファなり
ハードでシフタを並べて実装等があるんじゃないの?
102774ワット発電中さん
2016/09/12(月) 07:50:01.71ID:yT42DaCp
>>101
>>92(>>93)でそう言ったんだけど、誰も耳を傾けてくれないんだよ...
まあ日本語がおかしかったせいかorz
103774ワット発電中さん
2016/09/12(月) 07:50:38.24ID:yT42DaCp
>>95だったorz
104774ワット発電中さん
2016/09/12(月) 08:39:07.56ID:4Zp/H+y/
>>102
耳を傾けないってことはなかったんだけど、結果的にスルーになってた、すみません。
リングバッファは使うけれど、FIFOはあまり使わないって話で、
リングバッファをFIFO以外で使うことの方が少ないのではないかなって疑問に思っていたよ。

ところで、マイコンスレなのでスレチになるけれど、ハードでもFIFOをシフタで実装する例ってあるのかな。
すごく効率が悪そうな気がするのだけど。
105774ワット発電中さん
2016/09/12(月) 10:26:04.09ID:k1AuuACh
>>104
>リングバッファは使うけれど、FIFOはあまり使わないって話で、
なんだろ、この話が伝わっていない感は。
どんな実装しようが、先入れ先出しならFIFO(First-in First-out)であって
データ取り出した後に全部のデータを1個ずつ詰める方法だろうが
リングバッファのようにポインタをずらす方法だろうが 共にFIFO。
106774ワット発電中さん
2016/09/12(月) 14:11:01.87ID:ASvcHmsv
昔、UARTの制御ICで受信バッファをいくつか持っているものがあったと思う。
これは取り出し口が固定の、つまりトコロテン押し出し方式のFIFO。
ソフトでもこのタイプ(ポインタが1個、取り出し口がボトム固定、データシフトする)のFIFOを
実現出来るだろうけど処理負担が大きい。

リングバッファ方式はポインタを2個使うし上記とは考え方が異なるけどソフト向きで、
「先入れ先出し」という点ではもちろんシフト方式と同じ結果になる。
107774ワット発電中さん
2016/09/12(月) 14:20:08.71ID:ASvcHmsv
>>105
えーと、
誤:FIFOよりもリングバッファ方式を使う。
正:シフト方式よりもリングバッファ方式を使う
ってこと?
108774ワット発電中さん
2016/09/12(月) 23:11:01.90ID:4Zp/H+y/
>>106
>これは取り出し口が固定の、つまりトコロテン押し出し方式のFIFO。
>ソフトでもこのタイプ(ポインタが1個、取り出し口がボトム固定、データシフトする)のFIFOを
>実現出来るだろうけど処理負担が大きい。

16550みたいなUARTのことなのかな。
あれのFIFOが、シフト方式というのは何か情報があったのでしょうか。
多段になればなるほど、読みだしたときに一斉にバサあッとシフトするのってハードウェアで実装しても
消費電流の観点からも良くないような気がします。
シフト方式に何かメリットはあるのかな。

それとも、ダブルバッファ程度のUARTTのことなのでしょうか。(それならたぶんシフト方式ですね)

昔の数段ぐらいのFIFOにトランスペアレントラッチで作っているものがあって、それはそれで面白いなあと
思ったことがあります。
でも8段ぐらいのものなら、内部にリードポインタ、ライトポインタを持ってるものが多かったかと。
109774ワット発電中さん
2016/09/13(火) 01:28:03.44ID:jLOif99H
このFIFOの等価回路が面白い
http://www.tij.co.jp/jp/lit/ds/symlink/sn74als236.pdf
110774ワット発電中さん
2016/09/13(火) 01:45:23.70ID:qheQGz5B
何度でも言うぞ
FIFOはFirst In First Out: 先入れ先出し
つまり、先に入れたデータから順に取り出されるバッファメモリの形態を意味する言葉
で、それを実際の実装として具現化する方法の一つとしてリングバッファというものがある
111774ワット発電中さん
2016/09/13(火) 06:51:22.03ID:Hzxns2no
比較できないものを無理やり比較して何か意味ある結論が導けるかは疑問だ
112774ワット発電中さん
2016/09/13(火) 07:58:52.28ID:lhO9APFs
>>109
あー。ありがとう。俺がトランスペアレントだと思ってたのはこれだ。
読み解いてみよう。等価回路下段のコントロールロジックが面白そう。

>>110
それは分かってるよ。

リングバッファ以外での実装がどれぐらい存在するのか、
リングバッファをFIFO以外でどれぐらい使うのか、

が関心事項だよ。
113774ワット発電中さん
2016/09/13(火) 15:13:48.74ID:5txo1pL1
普通、「FIFO」という四文字の単語からはシフトレジスタを連想すると思うけど?
ハードをやっていない人はリングバッファを連想するのだろうか?
ま、何をどう連想しようと人それぞれでどうでもいいが。
114774ワット発電中さん
2016/09/13(火) 15:46:44.74ID:dD+heb4L
ハードをやってる人だけど、FIFOをシフトレジスタで
どういうふうに実現するの?
書き込みはデータ一個来るごとに1つシフトすればいいかもだけど
読む側は必ずしもシフトレジスタが一杯になってから、読むわけじゃ
ないし、書き込みと同期して読むわけでもないよね?
途中の段から読み出せる構造にしたらできなくもないと思うけど
限られた段数のしか難しいと思う

ちなみに、FPGAのIPでは Dualport memory 使ったリングバッファで
実現してる
115774ワット発電中さん
2016/09/13(火) 15:55:06.01ID:GXrzZjrS
固定概念もってると苦労するよ

日本語って言語理解してても意志疎通出来ない場合あるのは
上のスレ見れば分かる

どうでもいいけど
116774ワット発電中さん
2016/09/13(火) 18:38:30.03ID:lhO9APFs
>>113
確かによくあるFIFOの図を見ると、シフトレジスタっぽく見えてしまうけれど、
>>114が書いているようにシフトレジスタで実装すると、けっこう面倒。
「ハードをやっていない人は」って言ってますけど、実際にやってみた?

ライトポインタ、リードポインタを持つものの例(リングバッファ)
http://www.idt.com/document/720072017202-datasheet
http://www.ti.com/lit/ds/symlink/sn74v215.pdf
http://www.cypress.com/file/39826/download

シフトレジスタで実現したものの例
http://www.marutsu.co.jp/contents/shop/marutsu/datasheet/TC74HC40105A.pdf
さっき見つけたばかりで、これも読み切れてないw

>>108でも質問しているのだけど、>>106が言ってるUARTがシフト方式っていう元の資料を見てみたい。
117774ワット発電中さん
2016/09/14(水) 16:56:21.96ID:zUmvVunb
突き詰めるとシフトレジスタって言葉の定義しだいってことになるけど
TC74HC40105のような各段の書き込み(シフト)クロックが共通でない
非同期ラッチの従属接続構造は、シフトレジスタのイメージからは
遠いかもね

確かに、読み出す時はシフトレジスタ的動作すると思うんだけど・・・
118774ワット発電中さん
2016/09/14(水) 21:51:52.70ID:wGv8E0Th
>>117
そうですね。
ただ、それをシフトレジスタじゃない、って言ったら、
「普通、『FIFO』という四文字の単語からはシフトレジスタを連想すると思うけど? 」、
って言ってる人に寄り添うような実例をなかなか見つけられなくて。
ハードをやってるという>>113がどんな実装をしたのか知りたい…
119774ワット発電中さん
2016/09/14(水) 23:58:08.94ID:GiYzjO5n
>>112 リングバッファをFIFO以外でどれぐらい使うのか

それなりにあるよ。

例えば、過去のN個のデータで移動平均処理を行う場合、
普通はリングバッファでデータを保存するけれど、
1個ずつデータを取り出す事は無いのでFIFOではない。
120774ワット発電中さん
2016/09/15(木) 02:05:59.90ID:Hr5w9Xip
N個ずつ読み出すことにして、その間書き込みは禁止ってことだとしても
FIFOってことには変わらない気がするんだけど・・・
121774ワット発電中さん
2016/09/15(木) 02:33:13.90ID:Hr5w9Xip
>>118
スレ違いな話だし、「実例」でもないからほとんど意味ない話だけど
FIFOを(どっから見ても文句のつけようない)シフトレジスタ使って
実装するとしたら、シフトレジスタを
【想定される最大の入力データレートx段数】以上のシフトクロックで
常に回しておいて、書き込み・読み出しは適切な所を見計らって実行する・・・
というような方法かな

まあ、リード・ライトポインタ管理しなくちゃいけないのは変わりはないから
リングバッファのメモリーをシフトレジスタで実装したってだけって話なんだけど
16450(16550)みたいなやつは、案外そういう実装されてるかも
122774ワット発電中さん
2016/09/15(木) 04:05:30.08ID:sVS9dbti
>>120

「N個の移動平均処理」というのは、新しい1個のデータが入ってきた時に
最新データを含めた過去N個のデータの平均値を求めて出力する処理。

データ数N個のリングバッファに新しいデータを1個書き込んだ後、
バッファ全体を読み出して平均値を算出するという処理になる。

FIFOのように読み出したデータが「空になる」という扱いはしないので
FIFOと呼ぶのは適切でないと思う。

それにバッファ全体を読み出す時に、先頭から読み出しても後尾から読み出しても
結果は同じなので、順番を意識するFIFOという言葉は合わない。
123774ワット発電中さん
2016/09/15(木) 07:05:43.24ID:FSReYNp8
>>122
>データ数N個のリングバッファに新しいデータを1個書き込んだ後、
>バッファ全体を読み出して平均値を算出するという処理になる。
もう少し効率的なアルゴリズムを考えましょう。
124774ワット発電中さん
2016/09/15(木) 07:09:18.64ID:TXfYZrOn
>>119
おー。それ。そういや俺もその用途で使ってます!
ユーザーインターフェースを伴うものだと操作履歴(古いものから破棄される)の管理にはリングバッファですね。

>>121
D-FFの純粋なN段のシフトレジスタで作って、
・書き込みは0段目だけ
・読み出しはN-1段目だけ
・N段のバッファが可能
という条件だと面倒な気がします。
単純に速くまわすだけだと、途中にムダなメモリが残ってしまうし。
125774ワット発電中さん
2016/09/15(木) 08:50:26.64ID:TXfYZrOn
>>123
言いたいことはわかるけれど、リングバッファを使っている事例には違いはなさそうですね。
126774ワット発電中さん
2016/09/15(木) 08:53:39.01ID:TXfYZrOn
それと「移動平均はFIRの特殊な形」と考えるなら、毎度、全加算を行うのは素直なやり方かも。
127774ワット発電中さん
2016/09/15(木) 13:17:01.90ID:3B13b3bf
「連続した数バイトの高速の(割り込みでは処理できないような)データブロックを受信する、
データブロック間には数秒の空き時間がある」
というような用途だったら >>109 の74ALS236:FIFOメモリ、
あるいは他のシフトレジスタが使えるかもしれない。
いずれにしろ、何らかの追加の回路が必要になって、
このIC1個で終わりと言うわけにはいかないだろう。
128774ワット発電中さん
2016/09/16(金) 07:07:04.80ID:wSiC7Pbl
>>127
マイコン外にFIFOを置く場合は、送られてくるデータを、FIFOメモリデバイスが喰えるような形にすることが面倒ですね。
既成のFIFOメモリデバイスはたいていがパラレルイン、パラレルアウトですし。
書かれている通り、追加回路が必要になることが多くて、
そんなことをするぐらいなら、メモリブロックが使えるFPGAを使うことになることが多いように思います。

既成のシフトレジスタデバイスを使ってでFIFOを構成するのはまず無理です。
129774ワット発電中さん
2016/09/16(金) 18:44:51.32ID:tml4AEDR
>>118
段数に依るだろ。
4段位ならシフトレジスタ使った方が回路規模小さくて済むと思う。
メモリーつかったら、アドレスカウンターとか必要になるしな。
130774ワット発電中さん
2016/09/16(金) 19:53:03.32ID:wSiC7Pbl
>>129
>>118は、>>117へのコメントですが、>>117が言っているように厳密な意味での
シフトレジスタでどうやってFIFOを実現しますかね。

少なくとも空っぽのときには、書き込みデータは、途中をすっ飛ばして出力に近い
レジスタに書くことになるわけですよね?
131121
2016/09/16(金) 20:39:10.71ID:l86do+Px
>>124
説明が不足だったけど、
・新しいデータを書き込まないときは、0段目には
 N-1段目の出力を書き込む
という仕様加えるとイメージできるんじゃ?
(面倒かそうでないかはおいといて)

(特にFIFOとかに限らず)シフトレジスタでシーケンシャルアクセス
メモリを構成する方法は、初期の電卓なんかでは使われていたみたいで
100bitのダイナミックシフトレジスタICとかあったりする
http://eleken.y-lab.org/collection/series/msm100.shtml
132121
2016/09/16(金) 21:10:47.74ID:l86do+Px
誤解がないように付け加えるけど、「シフトレジスタを使うと
簡単にFIFOが実現できる」って書いてるんじゃなくて
あくまでも、「(RAMでなく)シフトレジスタを使ってFIFOを作る方法」って
ことね
133774ワット発電中さん
2016/09/16(金) 22:05:39.57ID:wSiC7Pbl
いずれにしても全体が同時にシフトする構造ではだめですね。
134774ワット発電中さん
2016/09/16(金) 22:21:04.99ID:l86do+Px
全体が同時にシフト(ローテート)してれば、N段のシフトレジスタで
Nクロックの間には目当てのレジスタ(メモリビット)にアクセス
できるタイミングがあるわけでしょ?
RAMでアドレス指定をして読み書きするかわりに、Nクロックのうち
どのクロックで読み書きするか、というだけのことなんだけど・・・

シフトレジスタで直接FIFOを作るってイメージにとらわれてるから
理解できないのかな?
135774ワット発電中さん
2016/09/17(土) 01:39:35.16ID:e5wHRlwt
>>134
シフトレジスタで直接FIFOを作るってイメージにこだわると
各段の(パラレル)ロードを独立に制御してかつ、各段の
(パラレル)ロードデータを入力端子に共通に接続する構造になるかな
結局は、TC74HC40105とほぼ同等のことをD-FFでやるだけなんだけど
136774ワット発電中さん
2016/09/17(土) 01:56:21.97ID:0bXdCgmK
シフトレジスタ式だとリードライトを完全に非同期で出来るようにするのは
至難の業だな
137774ワット発電中さん
2016/09/17(土) 09:45:35.37ID:/wsL97jl
>>134
今4ワードのFIFOが下のような状況だとします。

IN→□□□■→OUT

白が無効データ、黒が実際に書き込まれた有効データです。
つまり、
・FIFOに1ワード書かれて、
・そのあとOUTからアクセスできるように、なんらかの方法で出口までシフトした
状況ですね。
4段FIFOですからまだ余裕は3ワードあります。

この状態で、OUTから読み出しがないまま、INから3ワードの書き込みが発生したらどうなるのでしょうか。
3連続書き込みの1ワード目はFIFO先頭が無効データなのだからシフトしない、としても
2ワード目はさっきのワードを上書きしないためにシフトする必要があります。
そうすると、全体が同時シフトだと、OUTにあったデータはこぼれてしまうように思います。
138774ワット発電中さん
2016/09/17(土) 10:02:50.10ID:DEfVX/KG
>>137
おじちゃんデータシート読まんの?
139774ワット発電中さん
2016/09/17(土) 10:07:37.85ID:/wsL97jl
結局のところ、最低限、各段の(前段からの)ロードを個別に制御しないと実現できないような気がします。
それに加えて、書き込みデータを即読み出し可能な状態にするためには、各段にトランスペアレントなモードを備えるか、
無効段を飛ばしてデータをロードできる機能が必要になりそうです。
140774ワット発電中さん
2016/09/17(土) 10:08:45.20ID:tpk3DbtQ
>>134が言ってるのはシフトレジスタをループに接続してエンドレスにして
常にぐるぐる回しておいて、目的のデータの位置が来たときにリードライト
するということだろ。
初期の電卓はダイナミックメモリで常に回していたらしい。
141774ワット発電中さん
2016/09/17(土) 10:11:18.96ID:/wsL97jl
>>138
意味不明。個別部品の話ではありませんよ。

※念のため。このコメントへのコメントは>>138または当人を明示的に名乗る人からのものだけを受け入れます。
142かず
2016/09/17(土) 10:20:02.28ID:1b5Xo0MC
8086の開発環境をお借りできないでしょうか?プログラムの改修がどうしても必要なのですが、開発を担当した会社が開発環境をもう持っていません。
Windows3.1で動作したコンパイラ、アセンブラが使用されていました。
開発環境のメーカは、安藤電機製でした。よろしくお願いします。
143774ワット発電中さん
2016/09/17(土) 10:21:37.19ID:/wsL97jl
>>140
なるほど。
ID:l86do+Pxさんは>>132で、とにかくシフトレジスタで作ったら、という話をされてますね。
規模、性能、実用性はおいておいて、という感じですね。
であれば俺は関心ないかな…。
144774ワット発電中さん
2016/09/17(土) 10:24:48.03ID:/wsL97jl
>>129
>段数に依るだろ。
>4段位ならシフトレジスタ使った方が回路規模小さくて済むと思う。'

こちらの方は実用的な回路の話っぽい。
>>130に戻ってしまった。規模の小さい実用的な回路ができるのかな?
145774ワット発電中さん
2016/09/17(土) 11:03:01.60ID:9pJPTl6A
ソースコードはあるのかね?
コンパイラ、アセンブラ、逆アセンブラのソフト名は開発会社から聞けた?
146774ワット発電中さん
2016/09/17(土) 13:44:19.58ID:lrAR+p3V
>>127
この例なら特に外付け回路は要らないのでは?

書き込み:データが来たらストローブ信号(RS232Cで言えばスタートビットに相当する)を
クロックソースとして、FIFOをシフトしながらデータを取り込む。
これを繰り返す。
またストローブ信号を割り込みでCPUに取り込む。

読み取り:CPUが割り込みを認識したら、ブロック受信時間後に、
CPUから必要な段数だけ(あるいは全段分)のクロック信号を送って
FIFOからデータを取り出す。

リングにする必要も無いしポインタも不要です。
色々と条件・制限はありそうだけど。
147774ワット発電中さん
2016/09/17(土) 15:18:31.75ID:/wsL97jl
>>146
読み書きのタイミングがバッティングしないなら大丈夫ですね。
148774ワット発電中さん
2016/09/17(土) 18:09:24.56ID:toYqPxbk
別にバッティングしても大丈夫でしょ
Datasheetのどっかにそんなこと書いてある?
149774ワット発電中さん
2016/09/17(土) 18:43:36.18ID:toYqPxbk
ちょっと見た感じでは、74HC40105と同じような回路かな
マスター/スレーブ式のFFでシフトレジスタ作っておいて
書込み時には途中段はトランスペアレントにして
既存データの最後尾に新規書込みデータを突進させる感じ
150774ワット発電中さん
2016/09/17(土) 20:27:52.35ID:btT9qXD4
>>145
8086だったら普通にリアルモードでアセンブラで書けばコンパイルはできるんじゃない?デバッグはbochsとかを使うとか。
FDとかでターゲットにプログラムをコピーする必要がありそうだけど。
151かず
2016/09/17(土) 22:40:29.22ID:1b5Xo0MC
>>145
ソースコードは、5インチのフロッピーディスクに入っているそうで、読み出すパソコンも探している状況。
コンパイラ、アセンブラの名前を開発会社の部長に聞くも、無回答。その部長がまだほとんど新入社員だったころのものなので、即答できないようでした。
まだ、使用している機器の開発環境ぐらい、維持しておけないものなんでしょうかね。 
152774ワット発電中さん
2016/09/17(土) 23:26:20.24ID:/wsL97jl
>>148
すみません。話が錯綜してますね。
>>127の単独の話ならバッティングしてもOKです。
なぜなら、FIFOかシフトレジスタで実現できる、としているから、FIFOでなら実現できますし。

>>146は、>>127が示した
>「連続した数バイトの高速の(割り込みでは処理できないような)データブロックを受信する、
>データブロック間には数秒の空き時間がある」
この条件の下で、シフトレジスタで実現できることを検討している文章に見えます。
俺のコメント>>147はそれに対するものです。

というか、FIFOと称して売られているもので、読み書きのタイミングがバッティングしちゃダメなものは
ないのではないですかね。

>>194
「74HC40105と同じような」ということですが、これってトランスペアレントモードを使ってるのかな?
(D-FFの内部がトランスペアレントだ、というのはナシで、段を外から見たときにトランスペアレントモードに
なるかどうか、という観点で)
コントロールロジックの伝搬遅延を巧みに使ってるように見えます。
空っぽの状態なら、次々にずらしたクロックを与えていくようなイメージかと。

その代わりに、遅延がハンパじゃなくて、空っぽの状態から最初の書き込みがあったあと、
読み出し可になるまでの遅延が4.5Vで208ns(typ)と大きい値になっています。
153774ワット発電中さん
2016/09/17(土) 23:42:12.55ID:pnWMc0+C
・集団ストーカー・電磁波犯罪被害の科学的根拠及び、技術上の根拠は以下のアドレスへ (警察板より退避)
http://jbbs.shitaraba.net/bbs/read.cgi/study/12517/1415977550/
これを読まずして、貴方は、集団ストーカー・電磁波犯罪被害者を統合失調症呼ばわり出来ない

・集団ストーカー・電磁は犯罪被害の加害装置について、レーザーは赤外線だと軌道が見えないし、軌道から外れたら、計測も困難を極めるだろう。
マイクロ波の周波数帯だったら、メーザー呼ばれ、軌道が見えないし、 軌道から外れたら計測が出来ないから、計測は困難だぞ。
学者・研究者でも証明は困難だぞ。
究極の個人攻撃が可能だ。
レーザー・メーザーを照射されていると主張しているからと言って、精神病とは限らない。 大問題になるぞ、人権的にも。
メーザー
http://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%BC%E3%82%B6%E3%83%BC
レーザー
http://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%BC%E3%82%B6%E3%83%BC
レーザーポインター
http://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC

・マイクロ波聴覚効果
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E6%B3%A2%E8%81%B4%E8%A6%9A%E5%8A%B9%E6%9E%9C
ファクトシートNo.226 1999年6月 電磁界と公衆衛生:「レーダーと人の健康」
http://www.who.int/peh-emf/publications/facts/radars_226.pdf
電波は聞こえるよーん。ここに詳しい解説があるから、勉強しておいてね。
『ガリレオ2』第3話の数式、パルス電磁波のフレイ効果による耳の奥の弾性波か
http://tenmei.cocolog-nifty.com/matcha/2013/04/post-6f27.html

これでも、電波は聞こえないという奴は、科学の敵だ。
154774ワット発電中さん
2016/09/17(土) 23:42:30.46ID:pnWMc0+C
集団ストーカー・電磁波犯罪被害の加害装置はレーザー・メーザーらしいな
・レーザー兵器について知ろう!
ドキュメンタリー - 未来の戦争 レーザー兵器
ダウンロード&関連動画>>

@YouTube


防ぐことは、ほぼ、不可能。核兵器以上かもね
・集団ストーカー・電磁波被害の加害装置がレーザー・メーザーによるものだとしたら、レーダーを使うはず。加害者にはこのように見えているハズ。ちょっと、エロです。
64MHzの電波を使って撮像しているMRIの動画
MRI Shows What Sex Looks Like From The INSIDE | What's Trending Now
ダウンロード&関連動画>>

@YouTube


見えている各臓器、脳も含めて、レーザーを照射すれば、危害を加える行為が成立する
参考までにCTの動画
Radiologist discusses CT and xray small bowel obstruction Imaging
ダウンロード&関連動画>>

@YouTube


PCB Imaging: 3D/CT X-Ray Animated Slicing (Top to Bottom)
ダウンロード&関連動画>>

@YouTube


・レーザー・メーザーが開発されたのが、1950年台以降、メーザー初の発振が1953年、レーザーの初の発振が1960年
https://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%BC%E3%82%B6%E3%83%BC
この記念すべき年以降の、人体の自然発火現象は怪しい
人体自然発火現象
https://ja.wikipedia.org/wiki/%E4%BA%BA%E4%BD%93%E8%87%AA%E7%84%B6%E7%99%BA%E7%81%AB%E7%8F%BE%E8%B1%A1
No.31 突然人間が燃え上がり、焼死に至る「人体発火現象」
http://ww5.tiki.ne.jp/~qyoshida/kaiki/31zintaihakka.htm
No.157 人体発火現象2
http://ww5.tiki.ne.jp/~qyoshida/kaiki2/157jintaihakka2.htm
人体 自然 発火現象 : 人の体が突然 灰になるまで 燃えつきる / 世界の衝撃ストーリー
dailymotionを上のタイトルで検索してみ
・モスクワシグナル事件
興味のある方は、集団ストーカー・電磁波犯罪被害の基礎知識として、知って下さい。アメリカ大使館での事件です
あなたの脳は誰のもの?(1)モスクワシグナル 前編
http://nueq.exblog.jp/17871225/
あなたの脳は誰のもの?(2)モスクワシグナル 後編
http://nueq.exblog.jp/17875689/
155774ワット発電中さん
2016/09/17(土) 23:42:46.82ID:pnWMc0+C
モスクワシグナル事件
あなたの脳は誰のもの?(1)モスクワシグナル 前編
http://nueq.exblog.jp/17871225/
あなたの脳は誰のもの?(2)モスクワシグナル 後編
http://nueq.exblog.jp/17875689/

メーザー・レーザー
メーザー
http://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%BC%E3%82%B6%E3%83%BC
レーザー
http://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%BC%E3%82%B6%E3%83%BC

モスクワシグナル事件と抱き合わせな。
メーザー・レーザー開発史とも抱き合わせな。
「電磁兵器」開発はここまで進んでいる!
「SAPIO」 1997.10.8号 著者・元UPI東京支局長グレン・デイビス
米国における主要な「電磁波マインドコントロール」
https://plus.google.com/110783017519913600743/posts/5gq8nq3sQQv

パンドラ計画というのもあるぞ (集団ストーカー・電磁波犯罪被害について)
羊の太郎君のブログ
パンドラ計画(Pandora Project)
http://blogs.yahoo.co.jp/ino_medaka/34513341.html
人体遠隔操作の周波数 CIAによるパンドラ・プロジェクトとゾンビ化
http://ameblo.jp/mst9/entry-10609519233.html
156774ワット発電中さん
2016/09/17(土) 23:43:00.09ID:pnWMc0+C
映画なのですが、集団ストーカー・電磁波犯罪被害の内容にそっくりです。
暇があったら、見て下さい。

クリープゾーン : マインド・コントロール
https://goo.gl/UQ9t4m
157774ワット発電中さん
2016/09/18(日) 09:35:05.31ID:toAgeuPb
>>151
実行環境はエミュレータでネットで3.1のイメージを探せば見つかると思うよ。
開発環境はgccとかで書き直す覚悟で今のwindowsで作り直した方がいいんじゃないかな。ちゃんとライブラリ化されてれば必要な部分だけ書き直せば済むかもしれない。
修正が少ないならリスクはあるけど、バイナリパッチを作るとかもありかも。セグメントの管理とかはややこしそうだけど、チャレンジとしてはなかなか面白いと思うよ。
158774ワット発電中さん
2016/09/18(日) 18:30:25.79ID:LLw6Nwb6
>>151
PC-98だろうなー i386時代の3.5インチTurboCならある気がする
159774ワット発電中さん
2016/09/20(火) 01:22:06.32ID:GAVL2UOb
あるよねー、実行Objしか残ってない古いプログラム改修せんといかん時って。
10年ぐらい前、支払手形を発行する仕掛けが古いプログラムで書いてあって、
どーしてもプリント出力のコントロールが再現できなくて悩んだ。
地紋、ガイド付き特殊カット付き連帳、カーボンシート付、だったのでドットインパクトプリンタ以外使用不可、
もとの地紋付きシート印刷していた印刷会社ははるか昔に倒産、
地紋シート印刷済みの専用帳票が段ボールに30箱以上あって、どうしてもそれ使いたいと泣きつかれた。
まぁ、対応したけど。
160774ワット発電中さん
2016/09/20(火) 02:10:42.39ID:FCFJyjwz
解析が好きだからそういう仕事は俺的には美味しいけどね。

8086ならWindow95 DDKをマイクロソフトから落としてくるとMASM6.11Cが
入ってるから、それでexeを作ってexeからHEXファイルを作ればROMに焼け
ると思う。
161774ワット発電中さん
2016/09/20(火) 03:37:52.65ID:c9JYKd94
今でもPC98を使っている製造ラインがあるんだけど、
今度PC98が壊れたら、PC98をシミュレートするプログラムの乗ったDOSVで
対応できないでしょうか。
162774ワット発電中さん
2016/09/20(火) 04:46:28.67ID:sjOHRh3v
>>161
エミュレーターな。
163774ワット発電中さん
2016/09/20(火) 08:38:26.41ID:6SkaMWSW
>>161
エミュレータ前提なら最新のwindowsでやった方がよくない?
164774ワット発電中さん
2016/09/20(火) 10:01:15.33ID:c9JYKd94
PC9801を模擬するWindowsソフトって、あるの?
165774ワット発電中さん
2016/09/20(火) 10:39:41.87ID:231NrNOG
>>161
普通にやってるけどな。
166774ワット発電中さん
2016/09/20(火) 11:31:54.41ID:DP3gQdp9
エミュレータがあっても
GPIBボードとか対応出来んだろ
167774ワット発電中さん
2016/09/20(火) 12:24:25.76ID:bikslEMf
>>166
GPIBのコネクタレベルまでエミュレートするというのは、ありそうな気がする。
「CONTEC GPIB基板 DLL」とか。
168774ワット発電中さん
2016/09/20(火) 14:02:51.11ID:231NrNOG
>>166
GPIBは需要無いからやってないが、CONTECの各種ボードはC-BUSからPCI用に置き換えて動かしてる。
169774ワット発電中さん
2016/09/20(火) 16:21:16.90ID:hogPP53V
>>168
>C-BUSからPCI用に置き換えて動かしてる。
それは、>>168が、>>168の技術で置き換えている、ということ?
それとも、CONTECが、PCI用の製品を発売しているので、それを>>168が使っている、という意味ですか?
170774ワット発電中さん
2016/09/20(火) 19:31:31.41ID:uQenbgi+
>>169
PCI→98(C)バス変換アダプタセット
http://www3.contec.co.jp/B2B/ConIWCatProductPage_B2B.process?Merchant_Id=1&;Catalog_Id=8&Section_Id=8&pcount=&Selected_CatalogMaster_Id=&Product_Id=889
171774ワット発電中さん
2016/09/20(火) 20:41:09.99ID:S6Y+55S5
>>169
エミュレータを書いた。
I/Oの部分はリング0で動かしてる。
172かず
2016/09/22(木) 23:42:10.89ID:f6BFTYyT
142の件です。いろいろと情報をありがとうございます。
173774ワット発電中さん
2016/10/14(金) 21:17:39.06ID:5dyRtQEv
ダウンロード&関連動画>>

@YouTube


マイコンソフトと言えばこのシリーズ
174774ワット発電中さん
2016/10/15(土) 18:17:37.15ID:e9Q9fX8S
>>173
あーーーーー
また三号機だけ残っちまった!!
どうすんだよこの後…
175774ワット発電中さん
2016/10/16(日) 15:41:51.31ID:qloB/nhV
無制限に回転するVRをADCに繋いで時系列で値が増えたか減ったかを検出する処理ですが
回転すると0->1000->0->1000と値がジャンプ(鋸状)します
当然1000->0になる瞬間で誤った方向に検出します。
なにか対策無いでしょうか?
176774ワット発電中さん
2016/10/16(日) 16:03:14.42ID:PUdFpwRT
>>175
回転スピードよりも十分速いサイクルでA/D変換をして判断するしかないのでは。
例えば想定される最高回転スピードの10倍で変換すれば、もっとも大きく変化する場合でも1000/10の100。

端っこを増でまたいだときは たとえば 950→50 だったりするわけですが、もし減で950→50だとすると想定スピードより9倍も速いことになります。
減でまたいで50→950でも同じで、増で50→950であるためには(以下略
177774ワット発電中さん
2016/10/16(日) 16:10:49.41ID:wVBbn9rp
>>175
1つ前の測定値と比較して、減ってたら別処理にすれば?
そういう単純なことじゃだめなの?
178774ワット発電中さん
2016/10/16(日) 16:12:49.33ID:wVBbn9rp
あ、逆回転もありなわけか、ダメだね。
忘れてください。
179774ワット発電中さん
2016/10/16(日) 16:44:03.67ID:+zolq7Fp
根本的な仕様検討がなってないな。
100→200に変わった場合、どうやってそれを+100と判断してるんだ?
-900かもしれないじゃないか。
逆に言えばそれを判断する明確な基準があるなら0をまたごうが
悩むことなんて無いはずなんだがな。
180774ワット発電中さん
2016/10/16(日) 17:44:08.77ID:tTiIcjYN
>>175
変化速度に制限つけないと回転方向は判別できないな
一度の変化量が、確実に200以下とか決まれば、大きい変化なら逆回転ってすればいい
181774ワット発電中さん
2016/10/16(日) 18:49:31.65ID:BMdE9aOV
「無制限に回転するVR」って言っても、出力が無制限に増えていくわけでもあるまい
182774ワット発電中さん
2016/10/16(日) 19:47:46.46ID:OGqs6ce3
確実にゼロあるいは開放が現れるのならそれを検出して判断すればいいと思うの。
183774ワット発電中さん
2016/10/16(日) 22:13:21.07ID:PUdFpwRT
>>182
950→ゼロ確実検出→50
これで解決するかなあ。
>>176の要素がなかったら方向は分からないと思う。
逆に、それができていれば、ゼロ検出も要らないと思う。
184774ワット発電中さん
2016/10/17(月) 06:33:25.78ID:uSAXw8hk
てか、176の方法で対応できないケースのほうが考えにくいのでは?
HDDのスピンドルモーターだって高々120回転/secなわけで
その時でも 10〜100kspsでAD変換すれば楽勝だし

まあ懸念点は、摺動ノイズとかあるから、その影響受けないように
できるかだと思う
185175
2016/10/19(水) 10:46:12.80ID:mnmvib/a
皆さまありがとうございます。
>176さんの考え方で実装する事にしました。
186774ワット発電中さん
2016/10/20(木) 07:29:45.90ID:LLvjRquN
>>176
一回転あたり、最低三回は検出しないとダメなのは、考えれば解るはずなのにな。
187774ワット発電中さん
2016/10/20(木) 09:10:41.59ID:4dpGW1Th
2.1回でもいいよ
188774ワット発電中さん
2016/10/20(木) 12:59:13.37ID:hQYqBxwJ
その3回の値が、
50 50 50 どのように考えるの?
189774ワット発電中さん
2016/10/20(木) 13:01:57.26ID:AP7sFh1R
静止
190774ワット発電中さん
2016/10/20(木) 13:02:14.02ID:d9Y+YXOf
停止
お前の脳といっしょw
191774ワット発電中さん
2016/10/20(木) 13:06:48.41ID:P6BBUH66
そこは素直にロリータ円光
192774ワット発電中さん
2016/10/21(金) 22:10:43.51ID:iWoM0dMt
普通にロータリーエンコーダって書けば良いのに。

ポテンショメータ型のロータリーセンサーを使う意味って何なんだろう。
ずっと回転しっぱなしなら、たちまち接触不良になりそうだけど。
193774ワット発電中さん
2016/10/21(金) 23:31:17.67ID:wdSWFwqU
使ったこと無いけどPSoCのアナログブロックでレゾルバとか読めるのかな?
194774ワット発電中さん
2016/10/22(土) 08:44:13.68ID:srvQxJJx
>>193
http://japan.cypress.com/documentation/development-kitsboards/cy8ckit-037-psoc-4-motor-control-evaluation-kit
195774ワット発電中さん
2016/10/28(金) 07:13:25.13ID:z4IH4DdG
>ポテンショメータ型のロータリーセンサーを使う意味って何なんだろう。
それは単に「安い」からでは?
産業機械のフィードバック制御などに使う光学式エンコーダはそれなりの値段がする。
196774ワット発電中さん
2016/10/31(月) 12:14:37.12ID:GqV93g3L
入力判定でon信号がきてから±1秒でスイッチを押せているかどうかと言うのはどの様に書いていけば良いのでしょうか?
197774ワット発電中さん
2016/10/31(月) 12:34:00.13ID:txdO+Ph/
マイナスはないっしょ。
198774ワット発電中さん
2016/10/31(月) 13:10:25.08ID:Q5qTmR2B
必要な精度のタイマー割り込みでonとスイッチの信号を見る。
onがアクティブになったらタイマー割り込みのカウント開始
Sw信号がアクティブになったらカウント止める。
タイマー割り込み間隔×カウント=時間
(チャッタ除去は考慮外)
199774ワット発電中さん
2016/10/31(月) 15:32:43.11ID:oiqInrLC
>>192
回転角度の検出が簡単に出来る。
連続回転させて使うのではなく、ステッピングモーターとかと組み合わせて使うんだろ。
200774ワット発電中さん
2016/10/31(月) 16:19:14.26ID:ozGzA5X+
>>196
オン信号で外部入力割り込みを有効にし、一秒のタイマーをカウント開始する
タイマー割り込みで、外部入力割り込みを禁止にする
外部入力割り込みで、スイッチが押されたのを確認
201774ワット発電中さん
2016/10/31(月) 16:38:19.44ID:XjDElNhE
>>196
マルチ乙
202774ワット発電中さん
2016/10/31(月) 18:49:47.06ID:BIpueceh
>>192
アブソリュート形ロータリエンコーダだな
非接触式のプロ用は高い
203774ワット発電中さん
2016/10/31(月) 23:06:18.52ID:90xZAMgN
>>196
・ぴったり2秒間サンプリング可能な長さのリングバッファを用意する。
・スイッチの入力を連続サンプリングしてリングバッファに絶えず流し込む。
・on信号からぴったり1秒後にスイッチ入力のサンプリングを止めて、バッファの中にスイッチON入力があるかどうか調べる。
204774ワット発電中さん
2016/11/02(水) 16:01:02.58ID:SaT/q3F+
スイッチを常時監視しておいて、入力が来たら反応させる
205774ワット発電中さん
2016/11/04(金) 18:08:22.92ID:Z0M7h4Mu
新卒の僕「先輩、ここswitch-case文じゃなくてポリモーフィズム使った方がいいんじゃないですか?」
先輩「なんで?switch-caseの方が分かりやすいじゃん。てかポリモーフィズムてなに?」
僕「… 同じような分岐があちこちにありますし、クラスを分けて詳細を隠した方が分かりやすいと思います。」
先輩「いや、クラスたくさん作るとあちこちに見なきゃいけないから面倒になるでしょ」
僕「では、なんでこの程度の規模のプログラムでC++を使ってるんですか?」
先輩「… C++の方が新しいからでしょ」

この会社で技術者として学べることは少ないと思うんだけど、
この業界(主に機械メーカー)てこんなんなの?
それともうちだけ?
206774ワット発電中さん
2016/11/04(金) 18:46:00.24ID:V/ogJPSQ
社会人の壁かな。
誰もがメンテできるように社内ルールでそうなってる所は多いよ。
ウチなんか変数は全部先頭で宣言しろ、だよw
207774ワット発電中さん
2016/11/04(金) 18:50:02.95ID:HjsMm7S5
>>205
ハードウェアに近いことやってるところは、そんな感じが多い気がしている
ソフト屋として技術を身につけたいなら、自分で勉強するか、もっとソフト寄りのとこ行けばいい
208774ワット発電中さん
2016/11/04(金) 23:09:48.43ID:rgro28vx
マイコンのアプリでぽりもーなんとかっつうのもこれまた…やね
OSなしでC++動かすことの難しさに比べたら、ぽりもーなんとかなんてどっちでもよくなるのかもよ。新卒の人も謙虚に教えてもらった方が後で得するよ。
209774ワット発電中さん
2016/11/04(金) 23:57:05.00ID:LWDAvyvo
実際、OOPでカッコよく書くのとCでダサく書くのはどっちがコードサイズが小さいんだろうか
はたまたどっちが実行速度が速いんだろうか、全く比べたことがないからわからないけれども。
210774ワット発電中さん
2016/11/04(金) 23:58:27.82ID:Me95rREE
>>209
最近はコードサイズなんかより明瞭性のほうが大事なプロジェクトが多いんじゃないかな
211774ワット発電中さん
2016/11/05(土) 00:11:21.23ID:m1Hq8+VE
機械制御はリアルタイム性が要求されるので
PICやAVRなどの小さなMCUでやるときは並列処理で書ける能力が大事だと思う
212774ワット発電中さん
2016/11/05(土) 00:45:00.49ID:Uo7aFZzi
>>209
逆アセしたら分かるよ。OOPで書いたコードは元が何か分からないほど沢山のコードが生成される。コンストラクタとかグローバル変数の初期化とか、書いた人が想定してないタイミングで動くこともよくあるからね。
サイズも速度も圧倒的にCだと思うよ。可読性とコード量は逆の関係になるよ。多分。
213774ワット発電中さん
2016/11/05(土) 00:55:51.73ID:CR84KaRH
裏で何が起こってっかわかんないのが高級言語だからしゃーない
214774ワット発電中さん
2016/11/05(土) 01:03:57.88ID:ZPdH1l8t
C++使う理由はたくさんあるはずだよ。サードパーティーとかライセンスとか社内のIPとか権利とかコンパイラとか何かのバージョンとか。少し考えればいくらでもあるじゃん。それが分かってない先輩も新卒もレベルは変わらないかもね。
他に行ったら手取り足取り教えてくれると思ってるなら、それは違うと思うよ。わからない事は納得するまで調べるとか質問する相手を選ぶとかしなきゃ、どこいっても同じだね。
215774ワット発電中さん
2016/11/05(土) 01:21:56.32ID:NbIA1LfU
>>214
最近のマイコンは、昔はソフトでやってた事も周辺機能として取り込まれてるから、また、状況は変わって来てる。
216205
2016/11/05(土) 05:18:41.32ID:Um9Buxd0
>>206-215

様々な意見有難うございます。

>>206
確かに、誰もがわかるよう書くのは大事だと思うけど、
「シンプルにわかりやすく書け」という言葉を
「簡単な(俺が知ってる古い)文法手法しか使うな」
という意味で言ってるわけではないですよね?
うちの先輩は後者の方ですが

>>207
本当にリソースやタイミングがシビアなとこらなら、部分的にある程度ベタ書きは許容してもいいとおもってます。

ソフトの勉強は自分で率先してやってますよ。
ただ、仕事のなかで学べる方がスキルアップは早いのにと不満に感じています。
この不満を解決するには転職しかないんですかね?

>>208
謙虚…
確かに今の私に足りないもののひとつかも
現場を良くしたいという意識もあるので、バランスや立ち回りが難しいですね
これも上から目線だと叩かれそうですが

>>209-213
自分的には、可読性とメンテナンス性・テスト可能性を優先して書いた方がいいと思います。
コードサイズや速度を気にするのは後からで。

初めからコードサイズや速度を気にした書き方をしても、労力に見合った効果はありますか?(orありましたか?)

>>214
政治的な理由でC++を使う人が多いということですか?
言語の特性とかではなく?

後半の指摘についてはその通りだと思います。

>>215
確かに、数年前と比べて安いマイコンでも周辺回路が高機能になったのはありがたいですね。
メモリも大きいですし
217774ワット発電中さん
2016/11/05(土) 11:45:31.91ID:Kv8Y4yn4
>>216
例えが悪くて済まんが
最新のOOPテクニックをふんだんに使って作ったシステムをリリースした翌日に交通情報にでも遭って死んでしまったらどうする?
企業としてはメンテ出来ないシステムなんか許されないわけで先輩も言外でその事を考えてるよ。

社内ルールを漸次変えていくよう提案するか、趣味プログラミングで発散するしか無いかと。

似たような轍を通ったおっさんより。
218774ワット発電中さん
2016/11/05(土) 12:01:07.51ID:Hx8KbpYA
1km先、渋滞が発生しています。
219774ワット発電中さん
2016/11/05(土) 12:41:54.79ID:PJmI876e
意識が高いのはすばらしいし、行動が伴えばもっとすばらしい
220774ワット発電中さん
2016/11/05(土) 13:52:05.80ID:wuFv2d8a
可読性も含めたメンテナンスのしやすさって、結局のところ集団が持ってる知識の得手不得手に依存するのではない?
ごりごりのC言語で書かれたものより、C++の方がメンテしやすいと考える文化の集団もあるだろうし。
技術としてどちらが優れているか、といえば、まあたいていの場合は新しくて普及しているものに賭けていけばトータルでは勝てると思う。
でも、そのことと所属集団の中での有用性は別だよな。
ヌシみたいな人がいて、多くのメンバーがそのヌシに従うようなところだと、ヌシの得手不得手が集団内での有用性を決めると言っていい。
221205
2016/11/06(日) 00:15:55.72ID:ymPd9d4o
>>217
確かに、自分以外の人が管理できない属人ソースは指摘されたようにリスクを伴うとおもいます。

しかし、「OOPをする=他の人がいじれないものになる」ととれる箇所については、賛同しかねます。

他の人がメンテできなくなったとしたら、
それは書いた人が汚い設計・コードディングしかできないか、
回りの人が知識不足なのではとおもいます。
222774ワット発電中さん
2016/11/06(日) 07:38:48.16ID:lOk1RNLu
質問しといて自分の意見は変えないパターン
223774ワット発電中さん
2016/11/06(日) 08:49:19.21ID:RCGUyB36
>>222
人はみな望む答だけを聞けるまで尋ね続けてしまうものだから、じゃないですかね。
心細くて自分と同じ傾向のアドバイスが欲しくなるのだと思います。

>>221
この場合、OOPで書いた人にはちゃんとした力量があるとするのなら
>それは書いた人が汚い設計・コードディングしかできないか、
↑こちらの可能性はとりあえず排除できます。

問題は、↓こちらの方ですね。
>回りの人が知識不足なのではとおもいます。

>>220にも書いたのですが、集団として継続的なメンテナンスをする必要があるなら
「集団に所属する個人」と「集団」はレベルを合わせる必要があると思います。
誰か(Aさん)が他の人が理解できない、先進的なことをしようとしたとき、次のようなことが考えられます。
1. Aさんが諦めて集団にレベルを合わせる。
2. 集団のレベルを上げる
3. 集団で継続的メンテすることを諦めて、Aさんに尖ったことをやってもらう。
実際にはどれが一つではなく、並行してやっていくのだと思いますがさもなければ、
4. Aさんは、自分が納得できる集団に乗り換える。
という選択肢もあります。配置換えを願い出るか、転職ってことですね。
224774ワット発電中さん
2016/11/06(日) 13:14:44.56ID:BY4wG7vq
>2. 集団のレベルを上げる
だと思うな。

>>205の意見は、正しいと思う。
だけど、それを現在の部署内で、即座に切替えできるかというと、それは否です。

だから、>>205のすべきことは、
1. 現在の部署のルールで、仕事を一生懸命やる。
2. そのうち、周囲が実力を認めてくれて、>>205に信用ができる。
3. すると周囲の人(含む先輩)は、
  「あいつの言うことなら、間違いないよな」と思う。
  「あいつが、OOPがいいと言うから、いっぺんやってみようか。(やらせてみようか)」となる
4. で、>>205がOOPで代替可能であることを示す。
5. 実際に採用され、業務も改善、>>205はヒーローになれる。
6. 部門長になる→年収1000万を超える。

現在の>>205が、いきなり4.をやっても、
2.がないので、いくら正論を言ってもスグには採用されません。

・周囲の人と同じ経験をして、その苦労を知っている人を、周囲の人は「仲間」と認める。
・仲間の中でも、経験、実績、技量があると、周囲は「信用/信頼」してくれる。

・まだ信頼が無い人の言うことは、いくら正論でも、だれも聞かない。
・信頼されている人の言うことは、多少違っていても、みんな納得する。
225774ワット発電中さん
2016/11/07(月) 06:15:55.23ID:tLRRFvpB
新しい技術を使えばいいってもんじゃない。
新人君が製品の性質を理解してるとは思えないので理由があって古い
やり方をしてるとしても理解できない。
例えば人命に直接かかわるような装置ならコンパイラに依存するような
やり方はしないだろう。
まず今のやり方でちゃんと仕事をこなせるようになるのが先決だよ。
226774ワット発電中さん
2016/11/07(月) 07:26:00.29ID:gxdDnuqt
>>225
一般論としてはそうだけど、今の話は周囲の勉強不足が原因だな。
なぜC++を使ってるか目的が分からない。
227774ワット発電中さん
2016/11/07(月) 07:57:35.92ID:6w7/ciRQ
目的も分からないし、メリットデメリットも分かってないのにOOPを押し付けて、それを知らない人を見下してるのが気になる。
マイコンでOOPとかやめた方がいいと個人的には思う。新人がそんなに優秀な人かどうかは分からない。分かったのはOOPが好きなんだなってことだけ。
228774ワット発電中さん
2016/11/07(月) 12:33:19.76ID:OKDpBdx9
いやこれ、新人君を擁護する訳じゃないけど、
新人君が悪いんじゃなくて
安易にC++を導入したのが根本的な原因じゃね?
229774ワット発電中さん
2016/11/07(月) 13:16:16.15ID:/eT13dli
コンパイラはC++でも、組込みなら .c にするよね。
230774ワット発電中さん
2016/11/07(月) 13:18:05.68ID:BgqGY6kj
容易かどうかは分かんないけどね。普通に考えたらCとアセンブラだと思うけど、マイコンっつってもlinuxくらいのってんのかもね。
マイコンでC++もOOPもどっちもどっちな気が。。。
231774ワット発電中さん
2016/11/07(月) 17:16:13.83ID:w5rUQgCJ
俺web屋だけど、
多くの組込み屋がOOPを毛嫌いする理由が気になるわ
新しい技術という言葉が多いけど、OOPてそんなに新しい技術でもない気がする
勉強してないだけじゃないの?
232774ワット発電中さん
2016/11/07(月) 17:26:27.79ID:1OHbKMxH
毛嫌いしてるわけじゃないんだけど、
リソースを気にしないといけないマイコンなんかでは、
OOP での開発は向かない感じ。
233774ワット発電中さん
2016/11/07(月) 17:51:37.97ID:x1N7FqYS
>>231
高級アセンブラじゃ無くなるからな
234774ワット発電中さん
2016/11/07(月) 18:11:22.20ID:uJ1uBEpM
組み込み屋さんのタイムスケールから考えると十分新しいし
初見の物は疑って掛かるという回路が頭の中に出来上がっている。
235774ワット発電中さん
2016/11/07(月) 18:41:12.78ID:rIyXjxGo
そもそもcppなんてトロくて使えない。cはアセンブラの10〜100倍遅いし、cppは更に10〜100倍遅い。
236774ワット発電中さん
2016/11/07(月) 18:42:27.48ID:uUHLi4H3
マイコン向けのコンパイラも変なバグあるの多いしな
237774ワット発電中さん
2016/11/07(月) 18:46:00.63ID:oQxRFPKJ
>>231
効率悪いからな。仮想マシンとか中間言語インタプリタとか、電池の無駄遣いは赦されないのだよ。
238774ワット発電中さん
2016/11/07(月) 19:08:01.22ID:uJ1uBEpM
なんでAndroid はあんなに流行ったんだろうな。
239774ワット発電中さん
2016/11/07(月) 19:59:56.73ID:91WGmidi
>cはアセンブラの10〜100倍遅いし、cppは更に10〜100倍遅い。
暴論で煽って何か楽しいの?
240774ワット発電中さん
2016/11/07(月) 20:08:02.56ID:91WGmidi
OOP=「仮想マシンとか中間言語インタプリタとか」って感覚なのかなあ。

あと「組み込みで電池の無駄遣いが許されない」って感覚も変。
「組み込みで電池の無駄遣いが許されない場合もある」だろね。
低消費電力で省メモリでするする動く必要のある部分には、それに見合うツールを使えば良いだけのことだし。
241774ワット発電中さん
2016/11/07(月) 20:46:01.34ID:1WQonL2r
>>221
パソコンとちがって組み込みは、ソフトとハードが直結されてるから、OOPで隠蔽化されると、不具合起きたときに対処しづらい。
242774ワット発電中さん
2016/11/07(月) 20:47:25.85ID:kV2XD6ZQ
的はずれなレスばかりでがっかりしたよ。
243774ワット発電中さん
2016/11/07(月) 21:29:05.60ID:RCkTJo3r
C++の話で何で「仮想マシンとか中間言語インタプリタとか」出てくるのか
244774ワット発電中さん
2016/11/07(月) 21:29:17.12ID:17SElSZO
ま、パソコン坊やには一生理解出来ない世界だから仕方が無いwww
245774ワット発電中さん
2016/11/07(月) 21:38:19.08ID:kV2XD6ZQ
大人げないレスしてしてしまった....スマン

ただね、おじさんは新しいことを頭ごなしに否定はしたくないし、
ある程度相手からの視点を理解してから反論するほうがいいと思うんだ。

ここでの議論は感覚が違いすぎる人同士でやってるからお互い理解できないんではと感じるよ。

なんでオブジェクト指向使えとか言うの?うるせぇな
って思う人は↓を読んでみると、フーン便利やんってなるかも

オブジェクト指向のこころ
https://www.amazon.co.jp/dp/4621066048

で、>>205、またはあんま勉強せず我流でやってきた人は、
組み込みに合わせた開発手法を↓とかで勉強してみてほしい

テスト駆動開発による組み込みプログラミング
https://www.amazon.co.jp/gp/aw/d/4873116147/

モダンC言語プログラミング
https://www.amazon.co.jp/gp/aw/d/B00HWLJEKW/

>>224で指摘してるように、すぐに変えるのは基本難しいけど、
変化の激しいこの時代、知識と視野は広いに越したことはないからね。
246774ワット発電中さん
2016/11/07(月) 22:30:27.79ID:91WGmidi
>>241>>237と同じで、「組み込みとはOOPが使えない規模、環境のものだ」という定義から始めているから、
結論として「組み込みではOOPが使えない」としか出てこない。退屈だと思う。

「パソコンと違って」というけれど、パソコンと組み込みは隔絶したものではなくて、辛口、甘口のカレーみたいに
境界のはっきりしない陸続きの世界だし。
247774ワット発電中さん
2016/11/07(月) 22:59:45.51ID:DxLKrS1K
8ビットの世界ならまだしも、32ビットの組込システムが主流になってきている現代でそれは無理がある主張だろう
248774ワット発電中さん
2016/11/07(月) 23:01:16.53ID:/eT13dli
いやいや、中辛があるから。
249774ワット発電中さん
2016/11/07(月) 23:08:19.19ID:vpGMS+kt
マイコン扱うのが好きな連中はプログラミングと同じくらいハードもいじる。
Cが動けば組み込みもパソコンも変わらないかもだけど、そこまで行くのが大変なわけで。
OS上がった、Cでプログラム動いたって時点でアプリ屋の手に渡されて、その後のことは知らないのかもね。
250774ワット発電中さん
2016/11/08(火) 00:13:44.25ID:KTtUY6c3
>>248
中辛もまた境界がとろけてしまっている。
マイコンソフト 悩み事相談室 2 [無断転載禁止]©2ch.net	YouTube動画>12本 ->画像>3枚
251774ワット発電中さん
2016/11/08(火) 11:43:10.86ID:NAdp3FvC
ちょっと横道のそれるけど、無駄に大きく複雑なモノは
それ自体がさらに大きく複雑なモノを求め
メンテナンス利権やマルウエアの温床にしかならないような気がする。
252774ワット発電中さん
2016/11/08(火) 15:33:33.57ID:oRGuutiJ
>>231
組み込みでOOPそのものが毛嫌いされるのではなく、OOPではメモリの動的
割り付けするコードが生成されるから、RAM使用量と領域の厳格な管理が
できなくなる。小さなマイコンではスタックあふれの暴走とか細心の注意
を払ってコーディングする必要がある。
LinuxボードみたいなRAMを腐るほど搭載している環境ではOOPは遠慮なく
使われている。
253774ワット発電中さん
2016/11/09(水) 07:33:21.52ID:HyO6e703
AVRや8ビットPICなどの小さなMCUとは作法、流儀がそれなりに異なるからなぁ。
FIマシンの操縦テクニッが農道を走る軽トラに通用するかってことだ。
(うーん、適切な喩えだろうか?)
254774ワット発電中さん
2016/11/09(水) 10:07:35.55ID:EpgICMWR
OOP=メモリの動的割り付け、って感覚なのか。
そりゃそう組めばそうなる。
C言語だってmalloc, free を使えば動的割り付けになるわけだけど、
そういう機能が言語にあるからといって、「C言語は動的割り付けをするコードが生成される」ってことにはならないと思う。
malloc, free を使わなければそうはならないんだし。
255774ワット発電中さん
2016/11/09(水) 11:27:22.64ID:ezQfeZIb
動的にメモリを扱わない OOP にどれほどの価値があるんだろうか。
現場を知っている意見とは思えない。
256774ワット発電中さん
2016/11/09(水) 11:47:12.60ID:EpgICMWR
隠ぺい、メンバー関数だけでも便利だし。
257774ワット発電中さん
2016/11/09(水) 15:30:34.70ID:7IPiUBzN
ArduinoはC++使ってるんだけど、誰も触れないのはなぜ?
258774ワット発電中さん
2016/11/09(水) 17:29:57.57ID:N1fljuuh
使っても問題ない。ハードなリアルタイムが要求されるようなとこではC++は使わないと言っているだけ。
車のエンジンコントロールとかさ、ミリ秒とかマイクロ秒で割り込み処理しなきゃいけないとするじゃん?そこでC++とデザインパターン駆使して制御するアプリ組む?
やりたいことの特性に合わせて選ぶってだけだよね。
259774ワット発電中さん
2016/11/09(水) 17:52:04.46ID:DeB2Ved8
>>258
アセンブリかなあ
260774ワット発電中さん
2016/11/09(水) 17:54:20.01ID:EpgICMWR
>>258
そういう柔軟性そのものが受け入れ難いのかも。使い道によって使い分ければいいのにって思う。

業界に入ったときには、

「研修でアセンブラか。講師の連中は何を考えているんだ。
はじめはハンドアセンブルで学ばないとマイコンのことが見えにくくなるのに」

と古参に言われたのだけど、いつでも開発に関しては保守的な人はいるね。
この人たちが強権を持たず適切なブレーキでいてくれる限りは問題はないのだけど。
261774ワット発電中さん
2016/11/09(水) 23:30:49.39ID:BHK6T9md
>>258
最近は戦闘機のコードもC++だがね

F-35の開発で生まれたソフト技術
http://techon.nikkeibp.co.jp/article/COLUMN/20120210/204592/?rt=nocnt
262774ワット発電中さん
2016/11/10(木) 00:14:15.53ID:ueigpmr5
ここの話の流れでは何か、C++の出すコードがCと比べて
極端に効率悪いってことがデフォになってるみたいだけど
そんなことないんじゃないの?
自分が考え付く範囲では
・メンバー変数へのアクセスがthisポインタ経由になるから?
・仮想関数とか使うとそうかも
っていうくらいしかないんだけど・・・
263774ワット発電中さん
2016/11/10(木) 00:50:27.49ID:eRB5MkuJ
>・メンバー変数へのアクセスがthisポインタ経由になるから?

頑なにC使ってるプロジェクトでも、
モジュールのトップから末端の下請け関数まで
モジュールの内部情報構造体のポインタ引きずってるのを見ると
C++にした方が(少なくともソースの見通しは)すっきりするのに
と思ったよ
264774ワット発電中さん
2016/11/10(木) 03:48:33.78ID:s2j/Xoha
C++って、そんなにいいんですか? 勉強してみようかな。
265774ワット発電中さん
2016/11/10(木) 04:29:49.83ID:nZNycVhY
>>262
C++だと、newとかでメモリの動的確保を使うことがよくあるけど、世の中のマイコンには、動的確保用のテーブル分すらRAMがもったいないみたいなのも多くてな

そんなマイコンでC++使うのもどうよ?ってのが多いんだと思う
266774ワット発電中さん
2016/11/10(木) 05:17:50.52ID:L18OR0rO
>>262
ちゃんと勉強すればcppの駄目さ加減がわかる。
パソコン用なら使えるが、使えるってだけ。まともに設計出来ない℃素人向け言語。
267774ワット発電中さん
2016/11/10(木) 06:21:51.11ID:vy7bsVht
規模が大きいとC++
小さい規模だとCでいーやーってなる
そもそも、規模がある程度になら無いと
オブジェクト指向の恩恵は得られないからねぇ

お仕事でLEDチカチカの
クリスマスツリー照明しかやってない人にとっては
クソ仕様言語だと思うし必要無いと思うよw
268774ワット発電中さん
2016/11/10(木) 06:45:06.09ID:tg3TnHse
>>265
>>254に戻る
269774ワット発電中さん
2016/11/10(木) 07:14:02.44ID:szdGep3o
コンパイラの最適化すら禁止されてる環境で働かされてる俺にとっては別世界の話だな…
270774ワット発電中さん
2016/11/10(木) 07:22:55.78ID:CwQx8+Tv
>>269
小規模の組み込みなんて、ソフト全体がデバイスドライバー見たいな物だからな。
271774ワット発電中さん
2016/11/10(木) 07:53:30.78ID:Zw7pIX2d
>>263
C++のコード逆アセしてみたことある?グローバル変数、コンストラクタ、マングリンク、ルックアップテーブル、仮想関数とか、書いてないものが挿入されるでしょ?あれが後で困るんだよ。
そもそもさ、ソフトウェアスタックと言うものがあるわけで、スタックのどのパートを書くかでアセンブラなのかCなのか、C++なのか全然違うでしょ。それを同じだって言うのは無理があるんじゃないかな?
272774ワット発電中さん
2016/11/10(木) 08:05:32.63ID:Zw7pIX2d
>>261
そ、そうなんだ。それは驚きだね。肝心のコーディング規約ダウンロードできないね。見てみたかったな。
航空防衛はかなり保守的だし、認可取るの大変だから凄い変化だね。
273774ワット発電中さん
2016/11/10(木) 08:24:15.69ID:JlaLwxf+
>>271はそのc++で自動で挿入されるもので、
どういう問題に直面したのか、教えてもらえればありがたい。

最近性能のいいマイコンが多くなってるけど、それでも問題になるの?
274774ワット発電中さん
2016/11/10(木) 08:49:13.98ID:W4x9kL7/
>>273
「教えてもらえるとありがたい」ってセリフからしてクリティカルシステムの実装者なめてる態度だよね。
275774ワット発電中さん
2016/11/10(木) 09:32:14.51ID:JlaLwxf+
>>274
いや、c++で困ったことのある人の体験談を純粋に聞きたかっただけなんだけど・・・
276774ワット発電中さん
2016/11/10(木) 09:34:40.48ID:tg3TnHse
組み込み=クリチカルシステム、って認識なのか。
何かを否定するために、否定できる土俵に話を限るのって退屈。

否定も肯定もできるいろいろな土俵の話をすればいいのに。
277774ワット発電中さん
2016/11/10(木) 09:55:41.05ID:bBIC2638
(゚∀゚)o彡゚肥大化!肥大化!
278774ワット発電中さん
2016/11/10(木) 11:44:46.58ID:PGkA4z58
8ビットと32/64ビットを同じ土俵では語れないと思うな。
tiny2313は128バイトしかRAMが無い。
機械制御ならリアルタイム処理も要求される。
条件を限定することには一理あるのでは?
限定したくないなら少なくとも適用した機種を示せばよい。
279774ワット発電中さん
2016/11/10(木) 12:11:20.23ID:JlaLwxf+
>>278の意見は一理ある
280774ワット発電中さん
2016/11/10(木) 12:33:19.81ID:es7mEUSx
>>272
新しいリンクはここよ!
www.stroustrup.com/JSF-AV-rules.pdf
281774ワット発電中さん
2016/11/10(木) 14:11:37.87ID:EYH3oBYo
Raspberry PiはModel AでもRAMを256MByte搭載しているわけで
Linuxボードはこれまでの組み込み屋の常識では語れない。
282774ワット発電中さん
2016/11/10(木) 21:01:35.42ID:WqTqFB9R
>>281
linux が動くレベルのをマイコンとは呼ばないだろ。
283774ワット発電中さん
2016/11/10(木) 22:15:42.25ID:tg3TnHse
今度は組み込みの話をマイコンにすりかえた!
284774ワット発電中さん
2016/11/10(木) 22:17:24.46ID:tg3TnHse
たぶん小規模なマイコンの話にしたいのね。
285774ワット発電中さん
2016/11/10(木) 23:07:02.36ID:bBIC2638
スレタイ通りのな。
286774ワット発電中さん
2016/11/10(木) 23:21:23.42ID:wxOrnTvh
>>275
問題が起きたらまずメモリダンプをとって、カーネルイメージが渡されるんだよ。これでなんとかしろと。バイナリのイメージだからね。シンボルすらないかもしれない。この時点でアセンブラがスタート地点なんだよ。
大抵は別のタスクとかドライバが別のタスクのデータを壊してるわけだ。ここからスタックを辿って、被害者と加害者を特定するわけね。
アセンブラでどの関数のどのコードを実行してたかを特定して、次にそのコードがどのデータを参照してるかを探して、そのデータがどのタスクに壊されたかを探すわけだ。
そもそもアセンブラが分かりにくいからCになって、Cじゃ不十分だからC++になったんでしょ?
で、その分かりにくいアセンブラからC++の隠蔽されたコードを避けながら目的の悪さしてるコードを見つけなきゃいけない。
CでさえめんどいのにC++なんてマジ勘弁って言いたくなるんじゃないの?
287774ワット発電中さん
2016/11/10(木) 23:32:50.77ID:wxOrnTvh
>>284
マイコン好きな人はやっぱ仕事で制御系やってる人が多いんじゃないかな?制御系はリアルタイムの要求きついから、そういう世界観になってるんでしょ。
ここで意見を交換できるのは良いことだと思うよ。どっちが正しいって話じゃないし。
仕事ならそれ以外のステークホルダによって言語やら環境は決まるからね。発端になった先輩と新人の話なんて現場じゃ関係ないよ。
288774ワット発電中さん
2016/11/11(金) 09:28:29.16ID:LjuoaYew
>>287
言葉使いにいろいろ限定したり一般化しようというベクトルが働くのがいまいち残念。
意見交換することが有益なのは、多様性があるからだよね。自分が知ってる世界だけなら意見を交換する必要はないんだし。

そういう意図がないのかもしれないけれど、>>286の話も、先頭に「俺の仕事環境なら」が付いていて、
末尾が「そんなわけで、CでさえめんどいのにC++なんてマジ勘弁って言いたくなるんだ」って締めくくってあれば、
「おお、ID:wxOrnTvhさんのお仕事なら、C++になると大変っぽね」って思えるのにな。

>仕事ならそれ以外のステークホルダによって言語やら環境は決まるからね。発端になった先輩と新人の話なんて現場じゃ関係ないよ。
これも「仕事はこうやって決まるものだ」みたいな認識が読み取れてしまう。まるであなたが視野が狭い人みたいに見えちゃって残念でならない。

自分の知らない世界の人へ自分の世界の話を、交換する意見として投げるなら、

自分たち以外の決定権がある人によって言語やら環境が決まる仕事や現場であるなら、発端になった先輩と新人の話なんて現関係ないよ。

とするべきだろうなあ。自分たちの裁量で言語、環境を決める仕事だってあるわけだし。
289774ワット発電中さん
2016/11/11(金) 11:55:18.39ID:FGMKYgDs
複雑な理論を組んでみたけど、
整理すればただの否定だった。
290774ワット発電中さん
2016/11/11(金) 13:14:58.68ID:iVQ5q7rj
tiny2313でもc++ですむ場合はそれですませるけどな
仮想関数とかnewとか使わない
大げさなものは乗らないのだからそもそも必要ない
c++もあれこれ制限つければそんなに冗長なコードは吐き出さないぞ
そもそもc言語の時代から開発実機の制限なんていくらでもあっただろうに
291774ワット発電中さん
2016/11/11(金) 17:19:47.94ID:3hoEbis4
>>290
C++を拡張Cとして制限して使うことには賛成だが、それだとOOPではないな。
上の議論の趣旨とは外れる。
292774ワット発電中さん
2016/11/11(金) 20:13:05.86ID:iVQ5q7rj
ここは悩み事相談室だろうに
まあ暇なやつが迷惑を顧みずにスレ違いの雑談をするのはいつものことだが
293774ワット発電中さん
2016/11/11(金) 20:20:15.55ID:KlkoE8gd
で、この議論の発端の質問は答えが出たの?
294774ワット発電中さん
2016/11/11(金) 23:18:06.59ID:lLjiYNZU
橙色のニンジン
295774ワット発電中さん
2016/11/11(金) 23:18:29.17ID:lLjiYNZU
誤爆すまん
296774ワット発電中さん
2016/11/12(土) 07:13:44.35ID:xi9IZdOD
ま、tiny2313をアセンブラ+マルチタスクで組んでる俺はプログラム実行スピードとサイズでは誰にも負けない自信がある
プログラミングは金が掛からない楽しい知的な趣味だけど、仕事でやっている諸君は大変だと思う、ガンバッて儲けてね♪
297774ワット発電中さん
2016/11/12(土) 08:31:40.20ID:1kjnBFKv
マルチタスクの使い方間違ってない?
298774ワット発電中さん
2016/11/12(土) 09:19:00.44ID:FTGTAUyw
>>297
言葉遊びがしたいのかな?
複数の処理を同時に行えば、とりあえず概念的にはマルチタスクでいいと思うんだが。
とかいうと、マルチコアじゃないと同時なんてありえないとか言い出すのかな?あーうざいうざい。

多分 296 は、スタック切り替えて複数のタスクを動かすフレームワークでも作ってるんだと思うけど。
299774ワット発電中さん
2016/11/12(土) 10:11:21.65ID:RpwZRjiw
文系ソフト錬金技術者の膨らまし商法を騙るのはこのスレでつか?
300774ワット発電中さん
2016/11/12(土) 11:36:23.82ID:+9sCzbjw
>>298
256バイトのRAMでコンテキストスイッチしてるなら無断が多くすぎると思っただけだよ。
301774ワット発電中さん
2016/11/12(土) 13:30:50.69ID:xi9IZdOD
>>300
Zレジスタとフラグレジスタを保存してのタスク2個のハード・ソフトのスイッチャーのサイズは命令12ワードで必要なRAMは7バイト
もちろん制約だらけだけど趣味ならこれで十分
32個のレジスタをどのように割り当てるかが運命の分かれ道なのでw
プログラム設計時にあーでもないこーでもないと時間を掛けるのが楽しい
302774ワット発電中さん
2016/11/12(土) 13:47:09.22ID:+9sCzbjw
なるほど、タスクごとにレジスタ固定してんだな。それなら分かるよ。立派なマルチタスクだね
303774ワット発電中さん
2016/11/12(土) 15:44:12.21ID:aG+u1lQs
はいはい、きれいな箱庭ですこと。
304774ワット発電中さん
2016/11/12(土) 15:46:40.09ID:ccWf04JH
自営業スレで仕事の話をしてるわけじゃなし、
おもちゃだろうが一個人専用だろうが良かろうもんに
305774ワット発電中さん
2016/11/12(土) 16:02:34.29ID:IjmmywRV
綺麗な箱庭を作れる人がすべてそうだとは言わないけれど、
隅々まで探求できるメンタルの持ち主だってことはよくわかる。この資質は尊敬の対象。
306774ワット発電中さん
2016/11/13(日) 00:43:00.09ID:ox43PFXi
℃素人プログラマでも無い限り、マルチタスクなんて当たり前過ぎるけどな
307774ワット発電中さん
2016/11/13(日) 10:14:15.10ID:wSe5y8x4
℃玄人さん、まだ生きてたの?
308774ワット発電中さん
2016/11/13(日) 11:02:58.54ID:xe3+zjgC
>>306
マルチタスクと言うか、割り込み駆使したり、処理を適度に分割したりとかは、普通だしな。
309774ワット発電中さん
2016/11/13(日) 12:31:28.04ID:IQlax0P+
マルチなのかどうなのか?
複数タスク実行と
マルチタスク実行とでは意味合いが異なる
310774ワット発電中さん
2016/11/13(日) 12:34:32.08ID:IQlax0P+
ようはプログラムした人間がマルチなのであって
プログラム自体はマルチでもなんでもないものを
マルチタスク!
と言ってたりする
311774ワット発電中さん
2016/11/13(日) 13:19:17.90ID:0RtTm5Cx
>>308
それは似非だろ
レジスタの干渉も一切ない、マルチタスクの話してんだろ
312774ワット発電中さん
2016/11/13(日) 13:21:21.47ID:vFWKW6nV
複数タスク実行とマルチタスク実行の違いがよく分からないが
たとえば
・SW1が押されたらLED1を1秒点灯する
・SW2が押されたらLED2を2秒点灯する
という2つの処理が互いに独立して実行できるならマルチタスクと言えるのでは?
シングルタスクならポーリングが何カ所かに複合、分散する
(あくまでも例なので、この程度ならシングルタスクでも簡単に実現できる
 などのクレームは無しで)
313774ワット発電中さん
2016/11/13(日) 13:23:12.98ID:AdkSyxsx
真のマルチタスク実行にはマルチコアが必要(キリッ
314774ワット発電中さん
2016/11/13(日) 14:47:37.19ID:D+/eGiQ2
>>312
35年くらい前にそんな話が出てた。干支3周回遅れかな。
315774ワット発電中さん
2016/11/14(月) 11:59:49.19ID:p8hlUfMI
どっちでもええ事を長々と薀蓄ぶちまけるのは
文系ソフト錬金技術者の特徴ですな、長文乙。
316774ワット発電中さん
2016/11/15(火) 12:13:31.71ID:Frt3uiHs
馬鹿のレスは非論理的で意味不明だな。
「干支3周回遅れ」に「文系ソフト錬金技術者」だってよ。
ついていけねぇよw
317774ワット発電中さん
2016/11/15(火) 13:01:04.57ID:enyuy5Ob
うん、煽ってるつもりだろうけど、
解りづらくて逆効果だな。
318774ワット発電中さん
2016/11/15(火) 13:09:09.19ID:ePwHNWDV
斜陽、落日、没落、衰退なら解りやすいか?
319774ワット発電中さん
2016/11/15(火) 21:24:24.04ID:yhwII2VJ
解りやすいか?ではなく、自分の中で、相手にわかりやすいだろうか?、と推敲し、
相手を慮るようにして文章を書き込めば、普通に伝わるのでは無いでしょうか?
相手からは、独善に見えるかもしれません。というか見えます。

何様その上から目線、うっざー

こんな感じで。
320774ワット発電中さん
2016/11/15(火) 21:48:11.72ID:ePwHNWDV
電子倒国だったな。
321774ワット発電中さん
2016/11/15(火) 22:02:31.29ID:MzEGyRRb
机の上の空 大沼安史の個人新聞
電磁波拷問・スローキル(Slow Kill)攻撃を許さない!
NSA(米国家安全保障局)の女性内部告発者が不当解雇後、集ストに遭い、それにも負けずに戦い始めたところ、こんどは「電磁波照射」による「拷問・スローキル」被害に遭う!
http://onuma.cocolog-nifty.com/blog1/2016/09/slow-kill-1dc2.html

電磁波拷問・スローキル(Slow Kill)攻撃を許さない!
2015年11月になってようやく、電磁波(指向性エネルギー)照射という「人道に対する恐るべき犯罪」に、自らの体験を通して気づく!
http://onuma.cocolog-nifty.com/blog1/2016/09/slow-kill-603f.html

DEW(指向性エネルギー照射装置)による電磁波照射攻撃(スロー・キル)を許してはならない!
DEWによる報復照射を受けているNSA(米国家安全保障局)の元言語スペシャリスト、カレン・スチュアートさんがツイッターで被害報告!
http://onuma.cocolog-nifty.com/blog1/2016/09/post-fe1a.html

DEW(指向性エネルギー照射装置)による電磁波照射攻撃(スロー・キル)を許してはならない!
DEWによる報復照射を受けているNSA(米国家安全保障局)の元言語スペシャリスト、カレン・スチュアートさんがツイッターで同時進行被害報告!
http://onuma.cocolog-nifty.com/blog1/2016/10/wdew-2d3c.html

集団ストーカーによるDEW照射攻撃に、日本ではなぜ宗教カルト系組織が使われているのか?
NSAによるDEW(指向性エネルギー兵器)攻撃に曝されれている内部告発者、カレン・スチュアートさんによると、彼女の地元の「インフラガード(InfraGard)」(米連邦政府自警団)が集スト照射の実戦部隊として使われているという。
http://onuma.cocolog-nifty.com/blog1/2016/10/infragard-10a2.html

電磁波照射・拷問攻撃を許さない!
米海軍士官学校(アナポリス)の卒業生(制御システム工学で学位取得)、デイヴィッド・ヴォートさんが、「DEW(指向性エネルギー兵器)」による電磁波拷問の脅威・現実を訴え、米国を横断ウオーク!
http://onuma.cocolog-nifty.com/blog1/2016/11/post-cc21.html

電磁波照射兵器の実験・演習・使用を、許してはならない
http://onuma.cocolog-nifty.com/blog1/2016/11/post-e223.html
322774ワット発電中さん
2016/11/15(火) 22:37:28.90ID:ePwHNWDV
S・R・B・S電子倒国の皆様ごきげんよう。
相変わらず技術者オナニー製品でさらなる衰退へ突き進んでおられるようですね。
頑張って身売り先を探してください。
さようなら。
323774ワット発電中さん
2016/11/15(火) 23:52:46.91ID:yhwII2VJ
やっぱりキッチーだったか。
ささようなら、とか書いてID変わるとまた来るんでしょう?
また今度ー
324774ワット発電中さん
2016/11/16(水) 08:28:54.44ID:KzGg9+ak
>>245の下2冊の本読んでみたけど、イイねこれ

趣味でしかマイコンいじらんけど
テスト駆動開発ってのはとくに組み込みで有用そうね

仕事ではこれやってる人居るのかな?
325774ワット発電中さん
2016/11/16(水) 12:48:29.86ID:aDwjF7MS
制御対象が多様なのに一つのマイコンというククリで
言いたい事を言いっぱなしだからなぁ

人間インターフェース対象なら
プロトコルスタックやGUIのクラス叩いてとかになって
ミリ秒単位のタスクスイッチプログラミングになるだろう

機械インターフェース対象で駆動するシステムなら
機械位置演算や速度演算、電圧電流演算等とかになって
マイクロ秒単位のプログラミングになるだろう

それなのに一つのプログラミングツールに対して
良し悪しは結論出来ないと思う
326774ワット発電中さん
2016/11/16(水) 12:54:11.97ID:NhT2dZqD
それ何回も言ってるけど言葉を変えて結局同じ話に戻ってきてるよね
327774ワット発電中さん
2016/11/17(木) 10:42:53.63ID:JZc69vKp
マイクロコンピュータとミリコンピュータに分けたら?
328774ワット発電中さん
2016/11/19(土) 19:33:08.55ID:/LTDmZqs
昔はミニコンっていうのがあった
329774ワット発電中さん
2016/11/20(日) 03:01:16.44ID:zLmfFBum
HITAC10 のことでしょうか?
IPLという呪文を打ち込んでから、紙テープを流すとFORTRANが動きました。
電動タイプライターがお友達です
330774ワット発電中さん
2016/11/20(日) 03:45:05.11ID:+2g5AIcD
VAXモナー
331774ワット発電中さん
2016/11/20(日) 06:25:30.98ID:ZbpoD4Cv
NEAC M4なら使ったことがある。
クロスアセンブラで8080Aのプログラムを開発した。
332774ワット発電中さん
2016/11/20(日) 08:32:41.97ID:TRcSnwsM
MELCOM70 360とか使ってたな
333774ワット発電中さん
2016/11/20(日) 20:41:06.23ID:0gFoSkhv
>>328
FACOM Rのメモリ増強モデル、FACOM R-Eってのを学校の授業で使ってたよ。
IPLはオート、紙テープで2パスのFORTRAN使って授業受けた。
クラスにいた秀才は、その時からアドレス直接指定してビットデータの書き換えとかできてたよ。
あの頃の俺には理解不能なまるで魔法みたいな感じだった。

今はできるけどなー
334774ワット発電中さん
2016/11/20(日) 20:47:18.76ID:i3JS+WgR
じじい自慢はもういいよ。若いの寄ってこないだろ?
335774ワット発電中さん
2016/11/21(月) 11:03:29.36ID:wT4KxEYZ
「お爺様が集って若かりし頃の思い出を楽しく懐かしく語り合うスレッド」が必要だな。
336774ワット発電中さん
2016/11/21(月) 12:25:39.97ID:VcWW7Tnb
年寄り笑うな行く道だから
337774ワット発電中さん
2016/11/21(月) 15:15:20.99ID:n0x8xivi
MELCOM70 360?
FACOM R?
みんな、IBM M360をまねした機種じゃないか。
そんな古い話は知らん。

LKit8は、PanaFACOM
338774ワット発電中さん
2016/11/21(月) 16:15:53.49ID:Z+2EY6LB
現在か未来について語ろうぜ
あるいは、せめて有益な思い出話を

>>205あたりからの活気はどこにいったんだよ

こうやって若い人が離れてくんだよ
339774ワット発電中さん
2016/11/21(月) 17:14:59.83ID:FrUSMF0v
TO92パッケージの3pinマイコン知りませんか?
340774ワット発電中さん
2016/11/21(月) 17:23:41.89ID:fEDBP8TZ
米粒PIC買ってきて自分で作れば?
341774ワット発電中さん
2016/11/21(月) 21:32:46.55ID:IXS6/3RC
>>337
MELCOM 70Bから触ってた爺ですが
342774ワット発電中さん
2016/11/22(火) 09:35:37.42ID:h9HmzgIP
>>339
昔Dallasにあったな、DSなんちゃら
うまく検索できない
343774ワット発電中さん
2016/11/24(木) 12:35:29.61ID:i9ZOV9c6
6Pinじゃダメですか
344774ワット発電中さん
2016/11/26(土) 13:55:37.43ID:oGwQStQV
Windowsでメインフレーム(MVS)を動かす
http://www.arteceed.net/?p=131
http://www.hercules-390.eu/
345774ワット発電中さん
2016/11/27(日) 00:05:24.87ID:qpRAeJ81
>>344
CICSとかADABASやDB/2起動したくなるな。
346774ワット発電中さん
2016/12/03(土) 20:56:33.78ID:E/MYssMv
教えて下さい。

PICでC言語を勉強しています。

a = a + 1; → a ++;
a = a & 0x12; → a &= 0x12;  という簡略の書き方が出来るのに感動しました。

それで質問なのですが、

a = ~a; は、どのように簡略で書けるのでしょうか?
347774ワット発電中さん
2016/12/04(日) 00:37:10.07ID:zv1qnOtY
>>346
簡単にはならないが、XOR
反転させるbit を選べるメリットは有る。
348774ワット発電中さん
2016/12/04(日) 03:06:33.64ID:bodk2kpz
ありがとうございます。
そうすると、

 a ^= 1;

で、0x00→0x01→0x00→.... ということでよいでしょうか。

ありがとうございます。
349774ワット発電中さん
2016/12/04(日) 11:51:03.56ID:EvMG73Gy
全ビット対象なら、a のビット数分だけいるんじゃないの?
8ビットなら a ^= 0xFF、16ビットなら a ^= 0xFFFF てな感じに。
それなら a = ~a がいいな。
350774ワット発電中さん
2016/12/05(月) 03:02:24.96ID:EO+EsIDZ
C言語って、だれが考えたのか知らないけど、簡略方法のセンスがいいよね。

a = a + 1; → a++;
a = a + 3; → a += 3;

学習した最初の頃に感動したのは、
if( a & 0x80 ){ というやつ。
それまでは、
if( (a & 0x80) != 0 ){ と書いていた。

また、
if( a = b = c ){ も、間違いではないと。
351774ワット発電中さん
2016/12/05(月) 08:43:31.53ID:m79qiwrH
>>350
見易い方で良い。
今時のコンパイラは、最適化してくれる。
352774ワット発電中さん
2016/12/05(月) 08:47:07.98ID:jeHOu/Gb
>>350
それは思った。さっぱりして、それでいて分かりやすい。
他の言語で使えない時、めんどくせぇ、と感じる位に。
353774ワット発電中さん
2016/12/05(月) 09:21:09.20ID:59ydNIzT
a++は認めるが
他は認めない

a=a+1でなく、単にインクリメンタル命令のつもりで認識している
算術の簡略化なんてナンセンス
354774ワット発電中さん
2016/12/05(月) 11:31:09.86ID:4ecSWJmg
>>352
同意です。スマートですよね。
a++; は、Verilogでは使えないので、少しだけ「イラっ」です。
355774ワット発電中さん
2016/12/05(月) 11:37:32.15ID:cMmetiuf
a++;と単体で使うには良いとおもう
if(a++){}
if(++a){}
とか入り乱れるとバグの温床になりうるからやめてほしい
ifの条件式内での代入もね
356774ワット発電中さん
2016/12/05(月) 12:44:51.73ID:4ecSWJmg
僕も最初は a++ と ++a は、戸惑ったけど、
文字のまま、前で足す、あとで足す、と覚えたら、問題ないけど。

それより、ポインタ。

未だに良くわかんない。
357774ワット発電中さん
2016/12/05(月) 15:01:51.06ID:6jbw0SCt
アセンブラを一回やってみよう。
358774ワット発電中さん
2016/12/05(月) 15:48:07.77ID:4ecSWJmg
コメントと四則演算のかけ算以外で「*」が出てくると、引いてしまいます。

*(volatile unsigned long int *)(0x00ef)

()はキャストだと思うけど、*が2つあって、どの*がどの数字に作用しているのかわかりません。

よくわからないので、配列でやっつけてしまいます。
359774ワット発電中さん
2016/12/05(月) 16:14:17.47ID:6CG1nLgn
>>358
とりあえず、下に書いてある内容でわからないことが
あったらまた質問してくれ
http://www.eleki-jack.com/h8/2009/09/h8-21h8c.html
360774ワット発電中さん
2016/12/05(月) 16:32:01.72ID:VB6mBRZI
>>358
SFRの参照とか一発でわかるけどな
361774ワット発電中さん
2016/12/05(月) 17:07:50.24ID:JGSrEpMF
sfrって何?
362774ワット発電中さん
2016/12/05(月) 22:29:24.70ID:VkCY0wOK
sfr レジスタでググる
363774ワット発電中さん
2016/12/06(火) 02:00:40.50ID:Bhvf0oYh
>>361
Special Function Resistor

日本名は、スペシャルファンクションレジスタ

意味は、特別な機能用の置数器
364774ワット発電中さん
2016/12/06(火) 08:19:36.39ID:8EvYLf26
>>363
特別な機能用の抵抗器じゃね?


みんな英語が苦手だもんな。
365774ワット発電中さん
2016/12/06(火) 09:15:26.13ID:fjugQxFm
>>363
そのレジスタちゃうがな。
366774ワット発電中さん
2016/12/06(火) 09:21:56.05ID:ncUthIMs
>>353
へぇ、そう言う思想もあるんだ。
a+=b
a&=b
a<<=b
とかは認めない感じ?

>>355
処理順がシビアな奴は敬遠しちゃうね。
息をするように扱えればエレガントなのかもだけど、
そこまでの力はないんで、条件式内での代入は避けてる
>>357に同じく、アセンブリ触るといいよ。
んとに触りだけで。
メモリが見えるようになるし、配列や文字列がアドレスな理由が見えるようになる
367774ワット発電中さん
2016/12/06(火) 09:28:46.31ID:kRgwlK+I
>特別な機能用の抵抗器じゃね?

笑!
368774ワット発電中さん
2016/12/06(火) 10:04:39.30ID:EAlXDCSt
a<<=b
なんて可読性最悪
バグのもと
369774ワット発電中さん
2016/12/06(火) 11:35:59.70ID:MsyxTDKL
Cから入った香具師
新入り 「パイセン、ポインタって何ですか?」
先輩  「メモリのアドレスのことだよ」
新入り 「アドレス?」
先輩  「そ、知らないの?ブロック図とかメモリマップとか見てりゃ解るだろ」
新入り 「ブロック図?、メモリマップ?」
先輩  「……」

ASMから入った香具師
新入り 「パイセン、ポインタって何ですか?」
先輩  「メモリのアドレスのことだよ」
新入り 「なんだ、そうだったのか…、あの解説書の説明解りにくいから…」
先輩  「たろ、解ってない奴が解説書書けばああ言う表現になるんだよ」
370774ワット発電中さん
2016/12/06(火) 12:55:05.23ID:UFGoUqR0
普通の人
新入り 「パイセン、ポインタって何ですか?」
先輩  「メモリのアドレスのことだよ」
新入り 「うそこけ、アドレスを格納しているメモリなりレジスタじゃないのか?」
371774ワット発電中さん
2016/12/06(火) 13:17:09.08ID:MsyxTDKL
ポインタ (pointer) とは、あるオブジェクトがなんらかの論理的位置情報で
アクセスできるとき、それを参照するものである。有名な例としてはC/C++で
のメモリアドレスを表すポインタが挙げられる。

https://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29
372774ワット発電中さん
2016/12/06(火) 13:23:16.64ID:MsyxTDKL
まぁ、変数だからなぁ。
「メモリアドレスが入る変数」にしとこうか…。
373774ワット発電中さん
2016/12/06(火) 13:24:26.88ID:MsyxTDKL
変数型か…。
374774ワット発電中さん
2016/12/06(火) 13:25:50.67ID:MSOi9kH4
先輩「うん、そうだね(めんどくせーなこいつ)」
375774ワット発電中さん
2016/12/06(火) 13:41:02.38ID:MsyxTDKL
Cの効率がいいのは解ってる、
頼むからASM通ってきてくれ、
説明が面倒だ。
376774ワット発電中さん
2016/12/06(火) 13:56:04.39ID:Bhvf0oYh
どういうときにポインタの嬉しさがあるかわからないです。
 ・ポインタを、使っても使わなくても達成できること → だったら、そっちでやろう。
 ・ポインタを、使わないと達成できないこと     → だったら、使おうか。
どのような例があるでしょうか?

a = a + 1; → ポインタは絡まないです。
P1.DR.Bit0 = 1; → I/Oでもポインタは絡みません。
377774ワット発電中さん
2016/12/06(火) 14:03:43.32ID:cueaUMOC
>>376
SFRrに反応しておいて、つまんない釣りはやめろ
378774ワット発電中さん
2016/12/06(火) 14:59:21.21ID:MsyxTDKL
Cや他の高級言語の話ならソフトウェア板へでも逝けば良いのかもな。
別スレ立てても良いし…。
379774ワット発電中さん
2016/12/06(火) 16:15:27.37ID:Bhvf0oYh
>>378
>>1には、C言語のことが書いてあるし、
話題としてはバッチリだと思いますが。
380774ワット発電中さん
2016/12/06(火) 16:22:36.37ID:FT17sgWJ
LPC2388でMDK-ARMを使っています。
シミュレータでは動くのに、実機ダウンロードすると動きません。
実機にIARで作成したhexファイルをダウンロードすると動くので実機は大丈夫です。
プログラムはインターフェス誌に有ったRTOSを使ったsampleです。
タスク切り替えが起きていないようなので割り込み関係に問題有りそうです。
シミュレータでは、uartの出力とGPIOの出力が変化する事が確認できています。
ソミュレータの使用経験があまりないので問題点が解りません。
何かヒントがあればお願いします。
381774ワット発電中さん
2016/12/06(火) 17:27:54.01ID:MsyxTDKL
>>379
良いんじゃないの?
ところでポインタは理解出来たかな?
382774ワット発電中さん
2016/12/06(火) 18:44:23.45ID:zOzdXU/F
ポインタは初期化しないとガッされるよ
383774ワット発電中さん
2016/12/06(火) 19:18:58.22ID:MsyxTDKL
charへのポインタ…。
384774ワット発電中さん
2016/12/06(火) 22:25:08.10ID:cE7HTizE
>>376 あなたの使うマイコンのライブラリがどういう考えで作って
あるかで決まる ポインタというものを極力使わないようにも
作れるし マイコンなんだからポインタ持ち出したほうが単純じゃん
ということでばしばしつかう流儀もあるだろうし
385774ワット発電中さん
2016/12/06(火) 23:27:40.05ID:WLYdJ0qv
>>376
Rubyでも使ってなさい
386774ワット発電中さん
2016/12/07(水) 06:47:59.45ID:YYhhtnRs
>>376
#defineとかで隠されているがP1はポインタだから。
387774ワット発電中さん
2016/12/07(水) 07:16:04.42ID:Z3CgSEaQ
実体「アメちゃんやるわ」
ポインタ「おやつは戸棚の中よ」
388774ワット発電中さん
2016/12/07(水) 07:31:46.83ID:OU9nCEyr
ポインタ使わなくていいんなら別に無理に使わなくていいし、覚えなくてもいいよ
389774ワット発電中さん
2016/12/07(水) 08:10:51.53ID:Y+DxW86I
Cだと動的メモリ取得と文字列操作はどうしてもポインタ見え隠れするかもね
無理に隠すとライブラリがごてごてになっちゃうし
390774ワット発電中さん
2016/12/07(水) 16:24:47.16ID:zoiE/U+a
>>380
ですが実機ではプリフェッチアボートが発生していました。
391774ワット発電中さん
2016/12/07(水) 23:52:16.36ID:xhgmcqtO
キャッシュとかMMUレジスタの設定間違いとか?
392774ワット発電中さん
2016/12/08(木) 09:08:56.49ID:SBGcnGs1
マイコン、PC周り系からPLCと徐々に手を広げているが、確かにデバック環境&ラン中書き込
み出来るPLCが圧倒的に便利で現場向き
PLC屋からマイコン分野に手を出すには少々の能力と大いなるやる気が必要

PLC長所&短所
・リアルタイムモニター、ラン中書き込み、動作環境設定がイージー
・メモリー(プログラム)容量が上がるといきなり高くなる
・語弊があるが、 誰でも継承できる→読み出しでコメントまで見せてくれる
                       マイコン系で言えばソースファイルで
                       実行ファイルから解析するのはしんどい

最近のマイ流行り感想はPLCはつくづく便利だなーと思う
PC+PLCのイーサー接続システムでPCデバック&モニターをPLC側に組み込んでやっている
393774ワット発電中さん
2016/12/08(木) 09:15:31.77ID:cMrko/TH
>>392
マイコンとPLCはカバーしている範囲が似ているようで相容れない。
人も開発思想も仕事の仕方も。
394774ワット発電中さん
2016/12/08(木) 10:05:58.46ID:SBGcnGs1
>>392
誤爆でした!
395774ワット発電中さん
2016/12/08(木) 10:15:46.47ID:7gDZ+H2t
https://goo.gl/eH1eR4
これ嘘でしょ。本当なの。。?
396774ワット発電中さん
2016/12/08(木) 10:50:58.49ID:F5yxS8cG
>>393
マイコンはソフト屋で開発業、
PLCは電気屋で施工業、
みたいな空気というか思想や文化を感じる。
スタート地点間逆だしね

機械屋が自動制御化してきたようなとこの、
頑固な体育会系のやり方はどうも馴染めない
397774ワット発電中さん
2016/12/08(木) 11:57:02.56ID:BFVoHg4+
>>391
LPC2388には、キャッシュもMMUありません。
コード自体はIARで生成させたhexを書き込むと正常なので問題ないと思います。
シミュレータの例外設定は、すべてで表示、停止するようになっていますが
動作しています。シミュレータの限界なんですかね?
398774ワット発電中さん
2016/12/08(木) 12:03:31.14ID:syWODepa
>>397
最適化切ったbin通してみたらどうかな
399774ワット発電中さん
2016/12/08(木) 12:55:16.89ID:BFVoHg4+
>>398
最適化のレベル0でも同じです。
ARMでもThumbでも変化ありません。
400774ワット発電中さん
2016/12/08(木) 13:17:32.38ID:syWODepa
>>399
デバッガ持ってないの?
401774ワット発電中さん
2016/12/08(木) 14:25:49.20ID:BFVoHg4+
>>400
はい。だからシミュレータを使っています。
402774ワット発電中さん
2016/12/08(木) 15:13:50.18ID:syWODepa
>>401
仕事なの?
403774ワット発電中さん
2016/12/08(木) 15:41:26.91ID:BFVoHg4+
>>402
仕事じゃないです。仕事でデバッガが無いなんて考えられません。
404774ワット発電中さん
2016/12/08(木) 15:56:00.81ID:7prcfBBx
https://www.scc-kk.co.jp/scc-books/book_data/9907/9784886479907_sample.pdf
https://www.jitec.ipa.go.jp/1_20casl2/casl2dl_001.html

レジスタだろうがI/Oだろうがメモリだろうが思う存分
 直 接 弄 っ て ください。
405774ワット発電中さん
2016/12/09(金) 07:05:23.13ID:O7enHTBP
>>388
マイコンでポインタ使わないとか、無理だろ?
406774ワット発電中さん
2016/12/09(金) 21:07:28.15ID:5Poo7JED
>>405
隠すことはできるだろう
arduinoが典型的な例
407774ワット発電中さん
2016/12/09(金) 22:48:57.68ID:v55Z7YtM
>>405
PICでも使わないよ。

RA0 = 1;
RCSTA = 0x52; とか、書ける。
408774ワット発電中さん
2016/12/09(金) 23:03:53.28ID:MrvNVyOF
>>407
defineされてて最後はポインタになるんじゃなかったっけ
409774ワット発電中さん
2016/12/10(土) 00:02:39.09ID:rOjr/EYq
>>408
そりゃそうだろうけど、本人は使ってない(そんなことすら知らないレベルもいる)んだからポインタが分からなくてもマイコンは使えると言っていいんじゃない?
もちろん趣味レベルの話だけどね
410774ワット発電中さん
2016/12/10(土) 01:15:26.34ID:ivGZXTR0
>>390
ですが、gccで実機で動くように成りました。
IARで作成されたRTOSを使えるように成りました。
MDK-ARMでシミュレータが使えるのでデバッグが簡単になるかと思いましたが
役に立ちませんでした。コードサイズ制限もあるので、gccで使えれば私には十分です。
助言を頂け有難う御座いました。
411774ワット発電中さん
2016/12/10(土) 01:18:20.84ID:QOruyByX
>>408
その理屈だと、int a=0x52; でも変数aにコンパイラ・リンカが自動的に
アドレス(ポインタ)割り当ててるって話になるよね
412774ワット発電中さん
2016/12/10(土) 01:23:38.00ID:oMyQKG40
ポインタを使わない=*とか&を書かない
という解釈なのかな。
413774ワット発電中さん
2016/12/10(土) 02:06:15.99ID:uPrgF1YR
揶揄だよ
414774ワット発電中さん
2016/12/10(土) 08:29:21.04ID:M8Qeivn6
>>412
そういうことなのでしょうね。自らが*とか&を書かない、という感じで。
少し込み入ったプログラムを書こうとすると、ポインタを使った方が便利なことも出てきます。
そのときに勉強すれば良いように思います。

ポインタを分かっていなければならないとか見えないところで使っているとか
ポインタを使わなくてもプログラムを書けるとか、そういう主張を始めるとお互い頑なになってしまいますね。
415774ワット発電中さん
2016/12/10(土) 11:58:01.25ID:QpPO6u+U
どういうものか知ったうえで判断した方がいいんじゃないの?
416774ワット発電中さん
2016/12/10(土) 18:49:53.02ID:+rvCagY8
*や&を使わなければポインタと無縁なんて間違い。
配列使ったらポインタを使うのと同じ。

[]も使わないというならわかるけど
*aとa[0]は全く等価。
配列名を引数に渡す事も理解できなくなる。
417774ワット発電中さん
2016/12/10(土) 21:22:57.86ID:2aSNX9vm
(笑)
418774ワット発電中さん
2016/12/12(月) 22:53:43.34ID:0PDnod6L
コマケエコタァイインダヨ(AA省略

可読性と変更可能性さえよけりゃどっちだっていい。
初心者なら構造体のポインタ渡しくらい知ってりゃどうにかなるでしょ
419774ワット発電中さん
2016/12/12(月) 23:03:13.67ID:7Rm83qWh
そういう話ではなかったと思うが、まぁ、細かいことはどうでもいい。
420774ワット発電中さん
2016/12/13(火) 11:23:53.67ID:q73fnqYe
includeファイルも含めて、
ポインタを使わないと絶対にできない部分 って、何がありますか?
・文字操作系
421774ワット発電中さん
2016/12/13(火) 11:54:54.64ID:IQkORHPX
考えたこともないが、そんなこと知ってどうするんだ?
極力ポインタを使いたくないとかそんな理由ならやめた方がいいと思うが。
422774ワット発電中さん
2016/12/13(火) 14:21:03.64ID:/1rFxTtn
>>420
意識しているかどうかは別としてprintf()の引数がすでにポインタ
なんだから嫌でも使ってるだろ
423774ワット発電中さん
2016/12/13(火) 18:37:27.88ID:qALnzXkc
なんでポインタを嫌うんや。
424774ワット発電中さん
2016/12/13(火) 18:47:22.68ID:6D1JwdRq
マイコン使う時点で、ポインタからは逃れられない。
425774ワット発電中さん
2016/12/13(火) 21:34:44.32ID:57lqvnng
使いたくなければ使わなくてもいいんじゃない?
実用に堪えるかは知らんけど
426774ワット発電中さん
2016/12/13(火) 23:35:52.93ID:gUhQvbdw
JavaとかC#、C++、LL言語をやったことがある人なら
「ポインタは参照みたいなもんだよ」
で済むんだけどね
427774ワット発電中さん
2016/12/14(水) 02:35:32.11ID:0zTR6KOB
>なんでポインタを嫌うんや。
strcpy とかで文字を扱う時に、文字「列」を格納するメモリのイメージは理解できます。
先頭+0番地 'H'
先頭+1番地 'e'
先頭+2番地 'l'
先頭+3番地 'l'
先頭+4番地 'o'  のように格納しているのだと思います。
・そして先頭の0番地が文字列の「名前」になり、引数渡しで使用すると思います。
・文字列は、0x00(\0)が出てくるまでを列と考えます。
・そして中身を順番に取り出すのに「番地を指し示す変数」を++すれば、指し示す目的番地が増え、
  *を付ければその中身が取り出せ、&を付ければアドレス自身になるとかも、なんとなくわかります。

でも、実際に自分でプログラミングしろと言われたら、いきなりわかりません。
たとえば、以下に記載した文章の意味が理解できないのです。
先頭の数字は、行番号として付けました。

25行目の()と*と名前の関係が、まずわかりません。これがポインタ宣言だと思います。
しかし()と*が何重にも出てきて、どれが何を修飾しているのか、
さらにそれが、1行目からの固まりの何にどう作用/関係するのか、わからないのです。
アドレスは何バイトで指示すればよいのか、そのアドレスの「差し示す先の値」のbit幅は
どのように指示するのか、アドレスの値はバイト数を考えて、インクリメントは+1なのか+2なのか+4なのか、
そもそも、なぜ25行目が必要なのかもわかりません。

しかし、
わからなくても、このヘッダファイルをインクルードして、
if( AD.ADCRS.BIT.ADF == 1 )...とかやれば、使えてしまうので、
さわらないようにして済ませています。


01 struct st_ad{           /* struct A/D */
02   unsigned int ADDRA;      /* ADDRA */
03   unsigned int ADDRB;      /* ADDRB */
04   unsigned int ADDRC;      /* ADDRC */
05   unsigned int ADDRD;      /* ADDRD */
06   union{             /* ADCSR */
07     unsigned char BYTE;    /* Byte Access */
08     struct {          /* Bit Access */
09       unsigned char ADF :1; /* ADF */
10       unsigned char ADIE:1; /* ADIE */
11       unsigned char ADST:1; /* ADST */
12       unsigned char SCAN:1; /* SCAN */
13       unsigned char CKS :1; /* CKS */
14       unsigned char CH :3; /* CH */
15     }BIT;           /* */
16   }ADCSR;            /* */
17   union {            /* ADCR */
18     unsigned char BYTE;    /* Byte Access */
19     struct {         /* Bit Access */
20       unsigned char TRGE:1; /* TRGE */
21     }BIT;           /* */
22   }ADCR;            /* */
23 };
24
25 #define AD (*(volatile struct st_ad *)0xFFFFE0)  /* A/D Address */
428774ワット発電中さん
2016/12/14(水) 02:39:52.06ID:XPogMpuz
>>427
わからないふりをしてネタ振りをするのをやめろ。つまらないから。
あんた何度も似たような感じで書いてるからわかるよ。
429774ワット発電中さん
2016/12/14(水) 07:09:59.89ID:g0h7aKjh
無駄長文
430774ワット発電中さん
2016/12/14(水) 07:21:59.57ID:aOni0RbC
>>425
Windows 上のアプリとか作るなら、変数の実アドレスを知る必要ないけど、マイコンはアドレスが重要だからな。
431774ワット発電中さん
2016/12/14(水) 08:13:15.43ID:oZSsOUoN
>>426 時計まわり渦巻き法ってのがあるのよ
http://c-faq.com/decl/spiral.anderson.html

(*(volatile struct st_ad *)0xFFFFE0)

と書かれたら,この場合は 0xFFFFE0がスタートになって

0xFFFFE0 -> (何もない) -> (volatile struct st_ad *) -> (何もない)
-> * -> (何もない) -> (一番外側のカッコを抜けた)

とコンパイラは解釈していって,結局

0xFFFFE0 -> (volatile struct st_ad *) -> *

と解釈される 0xFFFFE0 はまあ long int と解釈されるだろう
(コンパイラのintのデフォルトが32bitならintだし,16bitなら
long int だろうねと)
その次はカッコで囲まれてて基点(この場合は0xFFFFE0)の前にあるから
キャストだねと 揮発性のある(volatile) struct st_ad 型の変数
へのポインタにキャストするよと キャストのされかたは実は
コンパイラ依存なんだけど この場合は メインメモリのFFFFE0番地って
ことを指してるんでしょうね で 最後の * で そのポインタの指している
対象(struct st_ad型の変数)を指すよと
432774ワット発電中さん
2016/12/14(水) 08:19:27.35ID:oZSsOUoN
(つづき)だからこの場合は このマイコンのFFFFE0番地に struct st_adで
定義されたような構造をもつ変数がアドレス固定で置いてあって AD って
名前で参照されるようにしたよ っていってる

ちょいと無駄だけど

volatile struct st_ad *p_ad = (volatile struct st_ad *)0xFFFF
E0;

とやって

if( p_ad->ADCRS.BIT.ADF == 1 ) ...

と書かせるようにしてもよかったところ
433774ワット発電中さん
2016/12/14(水) 08:24:26.97ID:oZSsOUoN
>アドレスは何バイトで指示すればよいのか、そのアドレスの「差し示す先の値」のbit幅は
>どのように指示するのか、アドレスの値はバイト数を考えて、インクリメントは+1なのか+2なのか+4なのか、
>そもそも、なぜ25行目が必要なのかもわかりません。

●●型のポインタ っていってるところがみそで
short int *p_si;
char *p_c;
long int *p_li;
とかあったら
p_si++ で p_siの内容は2増えるし
p_c++ で p_c の内容は1増えるし
p_sl++ で p_sl の内容は4増えるのよ
(メモリアラインメント考えたら嘘含んでるけど簡単に考えるため)
つまり型を指定してやれば それをメモリに並べて
配列にしたとき 配列の要素にアクセスするための番地指定は
何バイト飛ばしになるかわかるでしょ
434774ワット発電中さん
2016/12/14(水) 09:24:30.34ID:iABI3+UO
>>427
マジレスしといちゃる。
なんとなくわかったぐらいの時にそんなややこしい例を見ればそりゃわからんよ。
たぶん SFR の参照だろうから、サンプルなんかあるだろ。で、なぜそのサンプルの方法で
アクセスできるのか考えていくといいんじゃないか。

自分もアセンブラから入ったんで、ポインタの概念自体は知ってたけど、
C 言語の記述の仕方にはだいぶ悩んだ。
435774ワット発電中さん
2016/12/14(水) 10:30:51.66ID:Gbard1qB
>>427
低レベル(ハードに近いって意味な)C言語の通信教育かセミナー行けばよくね?
436774ワット発電中さん
2016/12/14(水) 10:44:39.77ID:TvJaw9O0
A/Dコンバータのアドレスじゃないの?
437774ワット発電中さん
2016/12/14(水) 11:16:08.90ID:TvJaw9O0
H8っぽいな。
438774ワット発電中さん
2016/12/14(水) 11:43:11.85ID:TvJaw9O0
ハードウェアを理解してもらわないといかんな、
そのためにはASMが手っ取り早いんだけど…。

https://www.scc-kk.co.jp/scc-books/book_data/9907/9784886479907_sample.pdf
https://www.jitec.ipa.go.jp/1_20casl2/casl2dl_001.html
439774ワット発電中さん
2016/12/14(水) 13:12:25.63ID:0zTR6KOB
>>431
ご丁寧にありがとうございました。全部読みました。うずまきのページも読みました。
>>431のお話は、まだ理解出来ていませんが、少しずつ読み解いて行きたいと思います。

ちなみに、基礎知識として、以下のような理解は正しいでしょうか?

(*(volatile struct st_ad *)0xFFFFE0) は、

1. 一番外側のカッコは無くても良い
  *(volatile struct st_ad *)0xFFFFE0

2. 塊で分けると、次のようで合っている
  *  (volatile  struct st_ad  *)  0xFFFFE0
 struct st_ad で1つの塊ですよね?

3. struct st_ad は、「別紙に書いた構造体ですよ」という意味であり、
   通常の変数名でも良い。例えば、hoge なら
  *  (volatile  hoge  *)  0xFFFFE0

4. volatile は、揮発性という意味で、コンパイラの最適化に対するお願いなので、
  理解の上で省略して考えると、
  *  (hoge  *)  0xFFFFE0
  と考えても良い、でしょうか。

宜しくお願いします。
440774ワット発電中さん
2016/12/14(水) 17:27:37.86ID:TvJaw9O0
良い。
441774ワット発電中さん
2016/12/14(水) 19:37:00.16ID:xj4fuRQM
hoge はあくまで型の名前でなきゃだめ
typedef struct st_ad hoge;
だったらよい
442774ワット発電中さん
2016/12/14(水) 20:06:33.38ID:TvJaw9O0
ややこしくなってるやん。
443774ワット発電中さん
2016/12/14(水) 20:20:18.42ID:TvJaw9O0
メモリアドレス0xFFFFE0に何があるのか知ってるのかね?
444774ワット発電中さん
2016/12/14(水) 20:35:51.26ID:szy1vyG2
ROMの終わりにデータを埋め込んであるとか、特定のバード依存のアドレスだったりとか、可能性は色々とあるけど...
445774ワット発電中さん
2016/12/14(水) 20:36:18.07ID:szy1vyG2
バードwww
ハード
446774ワット発電中さん
2016/12/14(水) 20:37:39.93ID:0zTR6KOB
>>440-441 ありがとうございます。
>>439-3.は、構造体なしに、1つの変数だとしたら、ということです。

>>443
AD関係の周辺回路を設定するFF(フリップフロップ)が繋がっていると思います。
447774ワット発電中さん
2016/12/14(水) 20:49:34.65ID:0zTR6KOB
>>439です。

みなさんの説明を読んでいるううちに、どうもポインタは、メモリの番地と変数を関連づけて考えた方が
良いように思えてきました。

すみません、自信がないので、再度基礎復習させてください。
http://imgur.com/a/qsZ0r
↑ここに思っていることを書きました。

普通の変数aとポインタ変数hogeを宣言して、1〜6のように代入や読み出しを
したときの理解は、これで合っているでしょうか?
どうしても値のbit幅に自信がないので、全部chqr(8bit)の図です。
宜しくお願いします。
448774ワット発電中さん
2016/12/14(水) 20:53:09.95ID:szy1vyG2
chqr
449774ワット発電中さん
2016/12/14(水) 20:55:39.04ID:0zTR6KOB
すみません、charの間違いでした。
450774ワット発電中さん
2016/12/14(水) 20:58:47.58ID:szy1vyG2
基本的には合ってるよ
キャストが必要とか細かいところを無視すれば
451774ワット発電中さん
2016/12/14(水) 21:15:39.62ID:TvJaw9O0
俺が落としてきたのはH8/3048グループマニュアルってやつだけど、
15.1.4あたりに書いてある
A/DデータレジスタAH
ってやつだと思う、機種は違うかもしれんが…。

>>427のリストは多分それにアクセスするためのファイルだと思う。

(メモリ領域にマッピングされた)内蔵A/D変換器のレジスタのアドレスで
機種固有の番号だから省略するわけには行かないんだよ。

つーか例文が悪すぎたな。
452774ワット発電中さん
2016/12/14(水) 21:36:09.31ID:oZSsOUoN
>>439

1.ここではマクロの置き換えをやっているんで カッコはとらないのが吉
たとえば
AD.ADCRS.BIT.ADF
てのを
*(volatile struct st_ad *)0xFFFFE0.ADCRS.BIT.ADF
って展開したら たぶんこれはエラーになる

2.はい

3.変数名ではなく型名ですね

4.はい
453774ワット発電中さん
2016/12/14(水) 23:37:43.69ID:0zTR6KOB
>>451
はい、H8のヘッダファイルの、AD設定レジスタの部分です。

>>450,452
ありがとうございます。すこし分かってきた気がします。

マイコンのAD,DA,I/Oなどは、内部で特定のアドレスに決められています。
例えば、以下を見て下さい。↓
http://imgur.com/a/vuEhP

0xFF番地のbit0にLEDが繋がっています。
これをonさせたいとき、気持ち的には、
  0xFF番地 |= 0x01;
とやりたいですが、そうも行かないので、
番地を指示できる能力を持った入れ物(ポインタ)を用意して、
その中に目的の番地を事前に登録しておいて、
そのポインタ変数名に「*付き」で書けば、目的地の値が変更できる、ということです。

それで、
*hoge といちいち書くのはめんど臭いので、
#define LED *hoge  として定義しておけば、
LED = 1;      と書いて実現できる、と。

さらに、
上記の画像のように、単に unsigned chr *hoge; と書くと、
コンパイラが都合の良い番地に決られめてしまうので、
アクセスしたい特定の番地を、最初に入れなければならない。
それも面倒なので、
(*(volatile struct st_ad *)0xFFFFE0) 
のように、番地の数字をここで一気に書き込む。

上の考え方は、間違っているでしょうか?
454774ワット発電中さん
2016/12/15(木) 00:22:48.15ID:uEBFymVc
後で読みにくくなるから#defineすることをすすめる
あと、環境によっては#pragmaで変数の番地を直接指定出来たりするものもある
これが一番スマート
455774ワット発電中さん
2016/12/15(木) 00:25:41.03ID:uEBFymVc
あと、レジスタに |= を使うと問題がある場合がある
スペックシートに設定に使っていい命令が指定されてたりする
456774ワット発電中さん
2016/12/15(木) 00:27:44.38ID:FIfGVXKz
だいたいそれでいいんじゃないの?
LEDが点滅するかどうか実験してみれば?
457774ワット発電中さん
2016/12/15(木) 08:04:25.06ID:GI3Yw99s
>>453
unsigned char *hoge;
してポインタ変数を定義したとき
>コンパイラが都合の良い番地に決られめてしまうので、
ではなくて なにもしてくれないので 最初は
意味のない値が入っている うっかりそれで
*hoge = 'c'; などとやったら
どこの番地に 'c' が書き込まれるかわからないので
大変危険 だから何らかの形で初期化が必要
マイコンの場合は仰せのとおり特定の番地に機能がアサイン
されているものが多いから 直接ポインタ変数に番地を表わす
整数を書き込んでしまう実装が多いかも
(その整数と実際の番地との対応も環境依存だけどねとかいいかけると
ややこしいので省略)

>それも面倒なので、
>(*(volatile struct st_ad *)0xFFFFE0) 
>のように、番地の数字をここで一気に書き込む

というよりは hogeにあたる変数を定義する必要がなくなる
からちょっとでもメモリ節約できるじゃん ぐらいのことかと
458774ワット発電中さん
2016/12/15(木) 10:39:13.35ID:/HdOVzZb
I/Oレジスタのdefineを読み解くってポインタといえばポインタだけど
ポインタの理解に適した題材なのかね。

リンクリストとかの方が学習には向いている気がする
459774ワット発電中さん
2016/12/15(木) 13:59:37.31ID:KlNcmmCh
>>458
LCDライブラリの自作がポインタ学習には合うと思う
460774ワット発電中さん
2016/12/15(木) 17:18:58.11ID:N7z+9fZj
話の流れからははずれるけど、I/Oレジスタのアクセスには
LED = 1; みたいに書くのより
#define LED_PORT 0xFF;
OutByte(LED_PORT,1);
みたいにするほうが好みだな
461774ワット発電中さん
2016/12/15(木) 17:26:58.45ID:vivMkONp
好みとかじゃなくて、それぞれの利点欠点を書いて
462774ワット発電中さん
2016/12/15(木) 18:58:58.10ID:Tk50ggir
>>460
ポート叩くだけなのに、いちいち関数呼ぶとか非効率だよね。
463774ワット発電中さん
2016/12/15(木) 20:13:05.64ID:ianxCtk7
マクロかも知れないし。
464774ワット発電中さん
2016/12/15(木) 22:46:44.77ID:GI3Yw99s
変数だと思うか通信だと思うか というのはあるかも
同じジャン という方は クロウトさんですねw
465774ワット発電中さん
2016/12/16(金) 00:59:02.84ID:auOcxPAA
機械語レベルでは、メモリマップI/Oと専用空間I/Oの争いがあったね
メモリマップI/O派は、LED |= 0x01; みたいなビット操作が1命令でできる
から優れているって主張だったような

確かに1命令にコンパイルできたら、割り込みで変なことにならないって
メリットあるんだけど、今のRISC系CPUの機械語でもそうなの?
466774ワット発電中さん
2016/12/16(金) 01:08:43.86ID:auOcxPAA
ちなみに >>460のOutByteは↓みたいなのだと思う
#define OutByte(port_address, value) \
(*((volatile unsigned char *)port_address) = value)

まあ、inline & template 関数にしたほうが今風なのかもしれんけど
467774ワット発電中さん
2016/12/16(金) 05:55:16.19ID:AmV8s2Lj
趣味だとどうでも良いことに時間がかけられていいな
468774ワット発電中さん
2016/12/16(金) 05:58:16.99ID:AmV8s2Lj
>>465
LED |= 0x01
はマシン語1命令でも正しく動かない場合があるから気を付けて
469774ワット発電中さん
2016/12/16(金) 12:51:46.88ID:UPSgQAfN
>>467
プロとアマでは目的が全く異なるからね
趣味:ヒマつぶし・・・時間が掛かることに問題は無い
仕事:金儲け・・・可能な限り短時間で納品する
470774ワット発電中さん
2016/12/16(金) 15:26:19.98ID:auOcxPAA
>>468
だからこそ、明確にI/Oアクセスを示す OutByte()みたいな
記述のほうがいい、って主張にもつながってくる

もっとも、最近のCPUの内蔵のI/Oレジスタに限ったら
たいていはRead/Write可能になってるかも
471774ワット発電中さん
2016/12/16(金) 17:45:51.87ID:UPSgQAfN
思い出した、AVRは入力ポートに1を書き込むと出力ポートが反転するという変態っぷりw
 sbi PinB,0 (ポートBのビット#0のHi/Loがトグルする)
ニーモニックくらい変えろよな旧アトメル。
AVR好きだけどさ。
472774ワット発電中さん
2016/12/16(金) 19:15:38.64ID:uKz9by/F
>>469
学生の頃はそう思ってたけど、働き出したら趣味の時間捻出の大変さを痛感した。
仕事はクオリティと時間のバランスが大事だけど、
趣味は時間最優先になった
473774ワット発電中さん
2016/12/16(金) 19:43:47.17ID:XvmOEP71
#define CK0 ( 1<<3 )
#define CK1 ( 1<<4 )
#define CK2 ( 1<<5 )

CK |= ( CK0 | CK1 );

みたいのも好きだ
474774ワット発電中さん
2016/12/16(金) 22:59:08.52ID:8bh9IKZc
>>471
初心者っぽい発想でほのぼのする
475774ワット発電中さん
2016/12/17(土) 07:31:48.11ID:TG64nTkP
>>471
動作内容から言えば変更するとしたら、たとえば「TGL PORTB,0」だけど
アセンブラ(逆アセンブラも)を変更したくなかったからかな?
476774ワット発電中さん
2016/12/17(土) 08:05:32.17ID:E/Or2mvF
>>468
まったく、「だからこそ」じゃない件
477774ワット発電中さん
2016/12/17(土) 08:05:50.66ID:E/Or2mvF
>>470だった
478774ワット発電中さん
2016/12/17(土) 08:13:14.54ID:E/Or2mvF
メーカーからレジスタ関連のヘッダが用意されてるな一番下の層は素直にそれを使うのがいい

規模がちょっとでも大きいシステムなら、さらに抽象的な意味の関数で包む

状態の設定(電源状態とか設定値とか)
LEDの点灯や点滅パターンの設定
単純なLEDのオンオフ
479774ワット発電中さん
2016/12/17(土) 08:24:38.25ID:E/Or2mvF
>>470
LED |= 0x01
がダメな例はread/write以外にも色々とあるんだけど

readとwriteの意味が異なる場合 (writeは出力のラッチの値、readはポートの電位 とか)
レジスタへの書き込み命令が制限されてる場合 (スペックシートに記載される)
|= が1命令ではなく、複数のタスクや割り込みから同じレジスタを書く場合

こういう面倒な心配をしなくて済むように、リッチなマイコンだと、

ポートセットレジスタ
ポートクリアレジスタ
ポート反転レジスタ
ポートのラッチ値取得/設定レジスタ
ポートの電位取得レジスタ

に別れてたりする
480774ワット発電中さん
2016/12/17(土) 11:31:19.50ID:GSY0Mq9L
>>479
セットとリセットは、排他的だから一個でいいんじゃない?
481774ワット発電中さん
2016/12/17(土) 11:35:22.21ID:aaRam+ar
>>479
具体的にメーカーか型番を書かないと説得力ゼロ
482774ワット発電中さん
2016/12/17(土) 15:04:58.12ID:TG64nTkP
横からだけど、AVRmega168のポートBのビット0について書けば
セット SBI PORTB,0
クリア CBI PORTB,0
反転  SBI PINB,0
ラッチ取得(スキップ命令):SBIS PORTB,0 と CBIS PORTB,0
電位取得(スキップ命令):SBIS PINB,0 と CBIS PINB,0
が相当すると思う。

mega168のI/Oブロック図
マイコンソフト 悩み事相談室 2 [無断転載禁止]©2ch.net	YouTube動画>12本 ->画像>3枚
483774ワット発電中さん
2016/12/17(土) 22:53:33.78ID:1hcyUMKX
初めて反転レジスタを見た時は、ちょっとびっくりした。
そこまでせんでもって感じ。
484774ワット発電中さん
2016/12/17(土) 22:57:22.02ID:E/Or2mvF
>>480
>>481
まあそのうち目にすることもあるかもね
そんなにマイナーなマイコンでもないから
485774ワット発電中さん
2016/12/18(日) 18:16:34.01ID:Vr+zzIBH
>>479
リッチと言うか、速度重視の為だけどな。
486774ワット発電中さん
2016/12/18(日) 21:40:44.21ID:YLuY8Ts9
速度www
アホだwww
487774ワット発電中さん
2016/12/18(日) 23:51:09.34ID:TQ15C8JQ
>>486
普通に1bitだけ値を変えようとすると、リード・モディファイ・ライトとなり、メモリーアクセスが増える。
ハード的に1bit だけ変えられるようにすれば、ライトだけでよくなる。
488774ワット発電中さん
2016/12/19(月) 02:27:45.19ID:zuKqYp2S
>>487
でも書き込む値はどのように知るの?
特定bit「だけ」書き込めるならいいけど、
8bit単位で書き込むなら、他のbitを壊さないように、
・読んで
・変更して
・それを書く
となるんじゃないの?
489774ワット発電中さん
2016/12/19(月) 06:50:20.66ID:SxytjOZn
そういうのは例えば1を書いたビットだけ操作する仕組みになってるから、読み出す必要なんてない
490774ワット発電中さん
2016/12/19(月) 13:30:14.11ID:zxLOodkG
>>482 の各命令は1ビットだけ入出力している。
もちろんmega168にもポート(8bit)単位の入出力命令もある。
491774ワット発電中さん
2016/12/19(月) 15:41:18.40ID:qdnDcLLP
質問させてください。

マイコンに周辺デバイスをつなぐ時、I2Cが流行っていますが、
どのようなメリットがあるのでしょうか?
SPIの方が通信の手続き簡単だし、通信回線もノイズに強いし、たくさんぶら下げられるし。
プルアップ抵抗のおかげで、通信速度上げられないし。
492774ワット発電中さん
2016/12/19(月) 15:50:08.60ID:LSyLd7k9
>I2Cが流行っています
そのソースは?
493774ワット発電中さん
2016/12/19(月) 16:02:17.37ID:dgxzbOKa
沢山ぶら下げたら、むしろCSを追加しなくていいI2Cの方が楽だろ
494774ワット発電中さん
2016/12/19(月) 16:52:26.65ID:zxLOodkG
RS485も忘れないで。
秋月にはインターフェイスICも売っている事だし。
495774ワット発電中さん
2016/12/19(月) 17:04:06.19ID:CNOiqqCP
周辺デバイスとの接続にRS485とは豪快だなw
496774ワット発電中さん
2016/12/19(月) 17:54:36.37ID:dhTxbIQb
>>491
I2Cが何の略か調べてから再質問
497774ワット発電中さん
2016/12/19(月) 18:21:04.27ID:qdnDcLLP
>>492
>>I2Cが流行っています
>そのソースは?
自分です。I2CのA/D, D/A, LCD, I/O拡張IC、EEPROM, EERAM, PGAなど
トラ技の記事で、8pin ARMマイコンのときも、周辺拡張にはI2Cでしたし。

>>493
>沢山ぶら下げたら、むしろCSを追加しなくていいI2Cの方が楽だろ
確かに、それはありますね。
でもアドレスが3bitくらいしかないですよね。少ないのになると、1bitだったり。

>>496
>I2Cが何の略か調べてから再質問
Inter Integrated Circuit ではなかったでしょうか。
498774ワット発電中さん
2016/12/19(月) 19:12:18.44ID:zxLOodkG
>>495 周辺デバイスとの接続にRS485とは豪快だなw
「周辺デバイス」を見落としていた、テヘペロ。
でも屋上に置いたJJY受信モジュール(aitendo GE11-670-JJY)の信号を
1階のtiny2313に入力するとき(接続ケーブル長20mほど)RS485を使った。
JJYモジュールを周辺デバイスと見なして、こんな例で豪快、どうかい、そうかいw
499774ワット発電中さん
2016/12/19(月) 19:41:33.40ID:41rdleDN
>>497
>自分です。I2CのA/D, D/A, LCD, I/O拡張IC、EEPROM, EERAM, PGAなど
自分だど言い切る馬鹿さ加減はあっぱれだが、すべてISP版もあるね
確認してみた?
500774ワット発電中さん
2016/12/19(月) 20:18:00.56ID:3mxhEpBb
どっちでもええがな。
501774ワット発電中さん
2016/12/19(月) 20:25:58.57ID:DVkLayfv
いずれにしても、
×ISP
○SPI
だわなw
502774ワット発電中さん
2016/12/19(月) 23:03:59.70ID:xNlD9N6Z
I2C だとマルチマスターやりやすい。
やらないけど。
あと、仕様がきちんと決まってる。

SPI はバラバラ。
503774ワット発電中さん
2016/12/19(月) 23:42:04.96ID:a1da9PBg
>>491
クロックとデータ信号だけで繋げられる。
あとはI2Cの規格書をじっくり読んでみれば、なるほどねと思うだろう。
504774ワット発電中さん
2016/12/19(月) 23:58:32.68ID:pzM2Qvvz
では、両方の長所短所を簡潔にまとめてください。
大先生、どぞ。
505774ワット発電中さん
2016/12/20(火) 02:10:46.60ID:IP78DX/v
・・・っていうか、デバイス(IC)によってI2CとSPIと選べないことが
多いでしょ?
使いたいデバイスによって決まる(選択の余地ない)ってのが普通じゃない?
506774ワット発電中さん
2016/12/20(火) 03:06:51.62ID:H5Lg7kY6
>>505
あなたが無能なことの言い訳は結構ですよ。
日記にでも殴り書きしといてください。

では、気を取り直して、大先生どぞ。
507774ワット発電中さん
2016/12/20(火) 03:42:50.64ID:InbxMOn+
I2C
長所
・ぶら下がる機器の数に関係なく、マイコンなどのホスト側の信号端子数が2本で済む
・それなりに規格化されているので、接続して動かないことは、ほとんど無い
短所
・Hをプルアップ抵抗によって作るため、
   ・その値が原因で通信できない状態が発生する場合がある。(低速にすれば回避)
   ・使用するのにアナログ的なセンスが求められる。
   ・高い通信レート、長距離は困難(低速にすれば回避)
・通信線を双方向で使用するため
   ・送受信切替プログラムにテクニックが必要で煩雑
   ・異なる電圧レベルの通信には特殊なICまたはFETの追加が必要
   ・送受信に時間待ちが必要(低速にすれば回避)

SPI
長所
・高速通信可能、I2Cの短所をすべて解決
短所
・規格化されていないので、互換性は無きに等しい
・デバイスの数だけ/CSが必要。あるいは、カスケードにすれば1本で済むが
  関係のないデータも送信する必要があり、スループットが落ちる
・信号本数が、/CS, MOSI, MISO, SCKなどI2Cに比べて多い

結論
・俺はSPIが好き

以上
508774ワット発電中さん
2016/12/20(火) 08:32:01.80ID:Zxx0mRsg
俺はI2Cが好きかな
速度足りない時はSPIにするけど
509774ワット発電中さん
2016/12/20(火) 11:43:13.95ID:sIaCraQa
I2Cはクロック・ストレッチングがクソ仕様
510774ワット発電中さん
2016/12/20(火) 12:57:48.66ID:y2zAj82d
>>509
何それ? 初イヤーだわ。
511sage
2016/12/20(火) 14:05:13.78ID:IusyAI80
ダウンロード&関連動画>>

@YouTube



ダウンロード&関連動画>>

@YouTube



ダウンロード&関連動画>>

@YouTube

512774ワット発電中さん
2016/12/20(火) 17:00:10.32ID:IpdSvyq3
調歩同期式の半二重なら信号線一本でやりとり出来る。
しつこい?こりゃまた失礼しましたッw

私はどっちでも良いときはI2Cだな。
513774ワット発電中さん
2016/12/20(火) 20:38:07.01ID:alUtuVl8
SPIでも、I2Sでもなんでもいいけどプログラムから、
普通にメモリとして扱えるデバイス(マイコン)ってないのかなあ
514774ワット発電中さん
2016/12/20(火) 23:00:28.81ID:+clQNS21
>>513
アドレスバス引っ張るのまんどくさい。
515774ワット発電中さん
2016/12/20(火) 23:37:24.63ID:7F1AkJE0
I2Cはデバッグが面倒
誰がローに引っ張ってるのか探すだけで大変
UARTが一番犯人捜しが楽

マイコン同士の通信はUARTが良い
けど、UARTが足りないとしょうがなくI2CやSPIを使う
516774ワット発電中さん
2016/12/20(火) 23:42:07.39ID:7F1AkJE0
>>514
特定番地にアクセスしたら、ハードでSPIやらI2Cで通信してくれるマイコンってことだよな

アクセス速度が違い過ぎじゃないか?
1命令に時間がかかりすぎて割り込み遅延とかすごいことになりそうだ
517774ワット発電中さん
2016/12/21(水) 03:21:11.42ID:TuSgQ0Ak
そんなときの wait 端子
518774ワット発電中さん
2016/12/21(水) 08:04:42.85ID:zATfaHyH
>>517
メモリのスピードが間に合わないって話じゃなくて、
メモリのアクセスに時間がかかるという話ですよ。
519774ワット発電中さん
2016/12/21(水) 09:18:53.54ID:EQglaXZA
間に FPGA でもはさめばできるだろうけど、
実装面積や速度の面から、あんまり実用的じゃないだろうね。
やっぱり、めんどいけど割り込みや DMA うまく使ってソフト書くのがよさそう。
520774ワット発電中さん
2016/12/21(水) 10:16:16.47ID:wXwQY5L1
>FPGA でもはさめば
昔、そういう設計のFPGAを見たことがある
SPIで接続したデバイスのレジスタをメモリ空間にマッピングして
そこに書き込むとSPIの書き込みが起きる
読み出しのほうは、定期的にFPGAが実行して、最新のデータがFPGAの
レジスタに保存されてる

何でそんなことしてるのか聞いたら、ソフト屋に難しいことさせないため
だって言ってた
521774ワット発電中さん
2016/12/21(水) 23:48:58.18ID:oAmPO/cP
>>513
32bit クラスのマイコンなら、大抵のは、SPI フラッシユをメモリー空間に割り当てられる。
大抵は4bit接続できるから、速度もそこそこ出る。
522774ワット発電中さん
2016/12/22(木) 08:46:05.52ID:kFV8vvdM
そんなマイコン見たことなんだが。
523774ワット発電中さん
2016/12/22(木) 08:48:27.86ID:/iQPqvvL
Quad SPIで調べてみなよ
524774ワット発電中さん
2016/12/31(土) 13:05:19.54ID:qEvUl8qu
AD変換の結果が正しく取れず苦戦しとります。(若干低めに出る)

基板;STM32F303K8 Nucleo
   http://akizukidenshi.com/catalog/g/gM-10172/

具体的には、ADポートに1.65V掛けた場合、12bit変換結果が1730あたりに
なり、3.3/4096*1730=1.394Vあたりで認識しています。

ADのVREFは3.3ぴたりで、ポートもマイコン端で測っているので間違いないです。
可変抵抗とかで電圧変えるとそれっぽく追従するので、変換自体はできているのですが。。。
何か原因になりそうなこと、ありますでしょうか?
525774ワット発電中さん
2016/12/31(土) 13:24:19.19ID:o6ewTonm
変換クロックが速すぎる
補正をしていない

あたりかな
526774ワット発電中さん
2016/12/31(土) 13:32:48.82ID:+Gt6QOpQ
>>525
キャリブレーションやってないのはありうるな
527774ワット発電中さん
2016/12/31(土) 14:00:03.85ID:3o6KhTz+
教えてください。IOバスが無い小さいマイコン(PIC,AVR,ARM)をZ80に置き換える場合、
GPIOをその都度IN,OUT切り替えてIOバスに接続して読み書きできるでしょうか?
528774ワット発電中さん
2016/12/31(土) 14:31:48.22ID:4WFAeoHa
http://rio2016.2ch.net/test/read.cgi/denki/1471967293/582
http://rio2016.2ch.net/test/read.cgi/denki/1479126696/348
http://rio2016.2ch.net/test/read.cgi/denki/1471967293/714
529524
2016/12/31(土) 16:02:04.11ID:qEvUl8qu
>>525,526
レスありがとう。
キャリブレーションはサンプルの丸パクリだけどやってたよ。
変換速度は何も考えずに一番速くなってた。遅い側に変えたら何でか
起動できなくなったので、もうちょい見直してきます。

ありがとう!
530774ワット発電中さん
2016/12/31(土) 23:21:26.47ID:9ueehls/
>>627
SPIやI2Cのマスターなら出来る
531774ワット発電中さん
2017/01/01(日) 02:47:52.62ID:1Xk1oMNx
>>527
ん?
Z80→PIC,AVR,ARM... じやなくて
Z80に置き換えたいの?
532774ワット発電中さん
2017/01/01(日) 04:53:14.16ID:b+L0kWaP
釣りだろ
533527
2017/01/01(日) 08:29:49.28ID:MqUbO/F1
>>Z80→PIC,AVR,ARM... じやなくて

間違えました。 仰るとおりZ80を最近のマイコン(バス無し)に置き換えの場合です。
534774ワット発電中さん
2017/01/01(日) 08:59:55.03ID:/w/6zqQZ
ARMなら外部バスのあるやつが普通にあるべ
535774ワット発電中さん
2017/01/01(日) 10:14:37.59ID:MqUbO/F1
すいません。前レス読むと >>513氏 が似たような質問してますが、当方あくまでZ80用の 8Bitバスで 入力、出力したいんです。
従ってSPI,I2Sは無し。マイコンを 8BitバスにつないでZ80からI/Oデバイスかメモリとして扱えるかが知りたいんです。
4MHzのZ80 から読み書き要求が来て、即座にGPIOを入力、出力に切り替えて間に合うかどうか?
>>534
消費電力、発熱ついでにコストを考えると CORTEX-M3 または M0 が対象になります。
536774ワット発電中さん
2017/01/01(日) 11:12:13.58ID:LCaoDepZ
間に合うのいっぱいあるから好きなの選んで。ていうかデータシート読みなさいよ
代理店と取引無くてもメーカーWebページからPDFでデータシートをもらえる時代だから

中央にZ80がいて、Z80PIOやRAMとかの周辺を置き換えたいって話かねぇ
用途を書いてないから断定はしないけど、FPGAとかの方が幸せな気がする
537774ワット発電中さん
2017/01/01(日) 15:22:09.92ID:pF3eABM+
マイコン側からZ80にウェイトをかけて待たせれば良いのでは?
538774ワット発電中さん
2017/01/01(日) 19:39:41.15ID:rtILyILp
>Z80を最近のマイコン(バス無し)に置き換え
と言っていながら
>4MHzのZ80 から読み書き要求が来て
とかわけ分かんないな。
質問者がもう少し頭の中を整理しないと。

>>536が言うようにZ80の周辺としてワンチップマイコンを使うという
ことなのかな?
そうだとしたらワンチップマイコンはバス接続のI/Oには向いてない。
539774ワット発電中さん
2017/01/02(月) 12:54:35.85ID:pu5rFXh9
バスってEMIFのことか
普通はFPGAの範疇
マイコンで出来たら教えて!
540774ワット発電中さん
2017/01/02(月) 13:59:25.85ID:n8UUdu53
向いてないけど出来ないとは誰も言ってないんだがな。
541774ワット発電中さん
2017/01/03(火) 02:12:24.18ID:Pvov1XVF
古い機械がZ80系で動いていて、なんらかの致命的な不具合の予兆が出ている。
もしくは仕様変更したいがやり方がわからん。開発ツールや前の担当が行方不明
何か別なモノに切り替えたいけど知識が無い。
ゲタかませるように上位チップで制御、プログラム変更、と言うかたちにできないか?

そんなことを言ってるような気がする。
542774ワット発電中さん
2017/01/03(火) 09:14:33.92ID:s9ILbryG
知らんがな
543527
2017/01/03(火) 10:20:57.33ID:CjHelAgm
説明不足ですみません。

>>538
じつは 35年以上前のアナログシンセ(Prophet600)にZ80が使われているのですが、Z80の処理速度の限界から不満があります。
これをフランス人がZ80をソケットから外してAVRに置き換えて成功させています。 
どうやってバスにアクセスしてるか疑問に思って質問しました。 もちろんバスには入出力どちらもアクセスします。

http://www.d1.dion.ne.jp/~ohk/p600/Prophet600FirmwareUpgrade_ja_beta_1_0.pdf

これと似たような事を、ハンダ吸い取りや基板改造無しということを大前提でやろうとした場合、そのシンセは日本ではZ80はハンダ直付けになっていて外せません。
でケーブルで伸びてるバスラインでZ80と接続してコプロセッサ的な位置づけで、マイコンを取り付けたいと妄想してます。
Z80から引数出力→マイコンが計算して返す という流れ。 Z80のROMはソケット挿しなのでZ80側のソフトは書換え可能。

>>537
基板上でWAITのピンが5Vに直結されているので WAIT信号は使えません(基板には手を加えないのが前提)。
544774ワット発電中さん
2017/01/03(火) 12:53:30.00ID:+Zlv/MWp
バスはバス。力業でバスを実現なんて珍しいことじゃない。組み込み屋としては、
>>543の能力の問題として)Z80のソフト変更ができるって言うんだから

 しらんがな、好きにしろ
545774ワット発電中さん
2017/01/03(火) 12:56:51.54ID:+Zlv/MWp
だが、要はTeensyの話だろうからシンセ修理スレなら反応あるんじゃないか?
そもそもProphet-600のCPUてキースキャン、ベンド、音源ICコントロール、音色記憶、MIDI-CVくらいだろ
乗算に何クロックも食うZ80で波形演算までやってない。EGくらいは変更できるかもだが
LFO乗っ取りまでは残したZ80の能力じゃ恐らく無理だし回路繋がってるのかも知らん
546774ワット発電中さん
2017/01/03(火) 13:37:41.95ID:QrXO9Hzo
>>543
AVRでZ80バスをアクセスする方法は考えられないのに
Z80と接続してコプロセッサとして使うのができるのか疑問

「ハンダ直付けになっていて外せません」ってことだけが障害なら
「外せません」なんてこと言ってないで外してソケットつけるのが一番近道
Z80の足切ってからやれば、パターンはがす心配も少ない

あと、Z80にDMARQだったかBUSREQかければバスから切り離せるから
取り外さなくてもバスを乗っ取れる
バスラインに出てるのか分からないけど、仮に基板上で5Vに直結とか
なってても、Z80のピンを基板から切り離してGNDに直接ジャンパする
くらいでできる
547774ワット発電中さん
2017/01/03(火) 14:10:13.29ID:+Zlv/MWp
再販価格のためオリジナルに手を入れずROMソケにサブボードを載せる形状にしたい、って読んだ
もうちょっといろいろ見えるようになってからじゃないと基盤を壊しかねない、って思った

バスが繋がってる範囲の操作ならやろうとしてること自体は実現可能だから、がんがって
548774ワット発電中さん
2017/01/03(火) 17:11:01.16ID:Pvov1XVF
>何か別なモノに切り替えたいけど知識が無い。
>ゲタかませるように上位チップで制御、プログラム変更、と言うかたちにできないか?

>そんなことを言ってるような気がする。

ここらへんは合ってたなw
Pro5に比べればやっすいんだからピンの足ビシバシ切って、
>>546みたいにズバっとヤればいいんじゃね?
549774ワット発電中さん
2017/01/03(火) 22:35:18.66ID:dYW/3ZNS
Intel487というコプロセッサの実態はCPUを内蔵していて制御をそっくり
乗っ取る方式だったけど、そんな感じかな。
550774ワット発電中さん
2017/01/04(水) 01:29:42.13ID:DRyBjHGe
>>549
そういう感じにするには、Z80のほうがそれに対応してなきゃ難しい
まあ、横からバスに流れるインストラクション監視してて
しかるべきときにDMAかけてバスを横取りして・・・って方法も
可能かもしれんけど、ソフトレベルのことを考えるとハードル高い

543の考えてるのは、Z80の時代にあった(名前思い出せないけど)
I/Oに接続するタイプの浮動小数点演算プロセッサ(デバイス?)みたいなのかな
551774ワット発電中さん
2017/01/04(水) 18:10:12.99ID:DRyBjHGe
調べてみたら、AM9511ってLSIだった
552774ワット発電中さん
2017/01/04(水) 23:34:57.13ID:DRyBjHGe
>>549
ゴメン! >>550の上の方は間違いで、全部乗っ取るんなら
>>546 の書いてる方法でできるね

ただ、システム全部 AVRで動かすことになるんだけど、大丈夫なのかって
話になってくるけど・・・
553527
2017/01/05(木) 01:36:46.23ID:ovsy0bZX
>>546
確かに基板をいじるのは何とかできそうですが、基板のパターンカット、ジャンパ、ハンダ付け等は絶対しないのが大前提です。

>>547
>> バスが繋がってる範囲の操作ならやろうとしてること自体は実現可能だから、がんがって

Z80からIn またはOut 命令が来たと言う信号はコネクタから取り出せます。 その信号に応じて バスにつないだマイコン側のGPIOを
デフォルト「入力」にしといて、Z80からOUT命令が来たらそのまま読み込み、IN命令なら速攻でGPIOを「出力」に切り替えてZ80にデータを渡す。
みたいにできないかなと考えています。 これがうまくできるか心配で質問しました。

>>550
>>543の考えてるのは、Z80の時代にあった(名前思い出せないけど)
>>I/Oに接続するタイプの浮動小数点演算プロセッサ(デバイス?)みたいなのかな

AMD社のAm9511 は私も知ってはいます。 これは扱いが複雑そうですが、私はZ80が出すOUT命令の番号に応じてデータを送る、IN命令が来たら受け取る、これだけです。
但し、IN,OUT とも 8BIT超のデータになるのでデータは連続で2BYTE以上を連続してバスに送り出す必要がありますのでうまくできるか疑問です。
554774ワット発電中さん
2017/01/05(木) 05:42:14.37ID:lebweUXT
出来るか否かは自分の能力次第
555774ワット発電中さん
2017/01/05(木) 06:52:58.31ID:FD+qdQVf
>>553
メモリかI/Oの空間に空きがあるなら難しく考える必要はないんじゃない?
556774ワット発電中さん
2017/01/05(木) 07:00:07.25ID:kr3uK8ia
>>553
Z80からメモリーかI/Oとしてアクセスするにはアドレスデコーダなど
のロジックが必要。
それを標準ロジックI/Cで作るくらいならFPGAでアドレスデコーダも
追加処理する部分も作った方が簡単。
必要ならFPGAにマイコンも入れられる。
557774ワット発電中さん
2017/01/05(木) 10:15:43.98ID:k/ui24AO
>>553
いきなりバス上のI/OデバイスとしてスレーブCPUを接続するって方向じゃなくて
バスには8255とかZ80PIOをつけて、それを通してスレーブCPUを接続するところから
考えたほうが近道では?
558774ワット発電中さん
2017/01/05(木) 12:14:40.65ID:hSWrDEwv
バスを叩いて職質受け逃走したってニュースを見てこのスレを思い出した
559774ワット発電中さん
2017/01/05(木) 13:38:21.49ID:XKiQ2bt5
>>553
目的
 IORQ、やRD,WR信号やアドレスバスのいくつかの信号をマイコンのDI/Oに接続して
 Z80のIN、OUT命令に周辺PI/Oとして応答する。wait信号は使用不可

Z80(4MHz)の1クロックのパルス幅は250nSで、その入出力実行時間の詳細は
http://www.yamamo10.jp/yamamoto/comp/Z80/Z80_Timming/index.php の3.3

AVRはDI/Oのビット単位の処理が簡単なのでAVRを使用するとして、
(20MHz、1命令実行時間は50nS、割り込み応答時間は200nS)
たとえばIORQ↓で割り込みをかけて、アドレスバスを調べてCSかどうかを判断し、
WRがアクティブならZ80が出力したデータをAVRが取り込む。
・・・
うーん、ギリギリかなぁ、
ハードの追加(74HC138など)が許されるなら可能だと思う。
実際にCPUボードを仮り組みして実験してみたら?
560527
2017/01/05(木) 21:53:53.13ID:ovsy0bZX
みなさんレス本当に有り難うございます。

>>559
>>たとえばIORQ↓で割り込みをかけて、アドレスバスを調べてCSかどうかを判断し、
>>WRがアクティブならZ80が出力したデータをAVRが取り込む。

現状アドレスバス、RD,WD,IOREQ,MEMREQ,BUSREQ,BUSAK,WAIT,HALT,M1,RFSH,RESET信号は
Z80の基板から取り出し不可です。
マイコンに送れる信号線は データバス(8Bit)と IO要求信号 3本(IN 1本、OUT 2本)だけです。
IO要求信号とは Z80の アドレスバス、RD,WD,IOREQ を基板内のアドレスデコーダ
(正に74138)に突っ込んで生成される信号です。
IN,OUT命令が実行されると 3本のうち1本が Hi->Lo になります。
従ってその 信号線をマイコンに割り込み要因として直結すればいいはずと考えました。

マイコンは AVR ではなく、Cortex-M0 か M3 を想定しています。ARM は数値演算の
ベンチマークだとAVRより数倍高速だから余裕だろ?と考えてたのですが、
単なるIOアクセスとか割込処理なんかは AVR と五十歩百歩なのでしょうか?
561774ワット発電中さん
2017/01/06(金) 13:55:47.68ID:2Ks1uK7z
長いので「Z80+マイコン」に興味が無い人は読み飛ばして。

外部でストローブ信号を作ってくれてるなら、
たとえばmega328でデータバスはポートBを使用、バッファと読み書き(ポインタZ)、
74138からのポートリード・ライトストローブ信号をPortDのビット0と1に接続、

入出力後に要求される処理内容によるけど、割り込みを使用する時は
書き込みZ80→AVR
 Int0_Req:    外部割り込み0処理
   in YL,PinB  ポートから読み取って
   st Z+,YL   バッファに保存
   reti

読み取りAVR→Z80 (R16に$FF、R17に$00を設定しておく)
 Int1_Req:    外部割り込み1処理
   out DDRB,R16 方向を出力に
   ld YL,Z+   バッファから取り出して
   out PortB,YL ポートに書き込んで 
   out DDRB,R17 方向を入力モードに
   reti

割り込みを使わないなら、
 L1:
   sbis PinD,0  読み取りのチェック
   rjmp L2
   sbic PinD,1  書き込みのチェック
   rjmp L1
 ;
   out DDRB,R16 方向を出力に
   ld YL,Z+   バッファから取り出して
   out PortB,YL ポートに書き込んで 
   out DDRB,R17 方向を入力に
   ・・・・・
   rjmp L1
 ;
 L2:
   in YL,PinB  ポートから入力して読み取って
   st Z+,YL    バッファに保存
   ・・・・・
   rjmp L1

タイミングはNOPなどで調整する必要があるかも?
必ず2バイト連続するなら続けて入出力した方が良いかも?
Z80ボードの入手やプログラミングが難しければ、555や74HC123などで
Z80バス(74138経由のストローブ信号)のシミュレータを作ってみたらいいかも?

とここまで書いて >>560 を読んだら書き込みが2ポートあることに気が付いた。
ピン変化割り込みを使わないといけない。
それと文中の「WD」は「WR」のことかな。

>単なるIOアクセスとか割込処理なんかは AVR と五十歩百歩なのでしょうか?
私はARMには詳しくないので、ARM関連のプログラムや判断は他の人にお任せします。

疲れたのでこれで終わりにします。
では御健闘(検討)をw
562774ワット発電中さん
2017/01/08(日) 07:14:26.79ID:ZyVpOe4J
AVR-XMEGAのDMAが使えるかもしれない
563774ワット発電中さん
2017/01/08(日) 08:03:19.43ID:nLOQgUS0
XMEGAは5Vトレラントじゃないからレベル変換だけでも面倒
564527
2017/01/08(日) 13:01:53.31ID:va4C6glr
>>561 有り難う。 AVRのアセンブラわかんないけど(ふいんき的に何かわかる気がする)

>>563
ARMを使う理由のひとつがトレラントの問題です。
一応入力、出力ともトレラントは大丈夫らしいけど、やってみたら思わぬ障害が出やしないか心配。
565774ワット発電中さん
2017/01/10(火) 03:02:52.97ID:WzGuNoVl
ここで延々とコミュニケーションを楽しむのが目的じゃなくて
本来の目的を達成したいのなら、前のどっかのレスにあったように
Z80をICソケットに取り換えるのが最初の一歩の気がするがな

将来的にオクで売るとかするときに、そればそんなにデメリットなもん?
保証とか関係してる新しい製品ならともかく、大昔の製品なら
むしろ「ICソケットに交換済み」ってほうがメリットな気もするけど
566774ワット発電中さん
2017/01/10(火) 15:37:24.91ID:A597Bo8/
>>565
拡張ボードの販売とかも視野いれてるんじゃないの?
567774ワット発電中さん
2017/01/11(水) 12:21:48.42ID:8f6o2hNP
>>561
ARMユーザーやPICユーザーからの解答が無いね

>>565
ICソケットに変えなくてもI/Oポートは作れるのでは?
568774ワット発電中さん
2017/01/12(木) 23:41:23.76ID:FnVBiee3
>>567
I/Oポートは作れるけど、WAIT,BUSRQみたいな信号を入力できるようには
できないよね?

この手の質問でありがちなのは、手軽にできる方法が提案されても
それは全部否定・却下して
実現方法はオレ様の気に入る方法じゃなくちゃダメっていう流れ
まあ、566の書いてるみたいな事情なら分かるけど
569774ワット発電中さん
2017/01/13(金) 00:38:22.70ID:Uv/qsCLm
>>567
追加するマイコン側の負担がやたら大きそうなのがな。
マイコンからは直接I/O類の読み書き出来ないからZ80にこのポートの値読んでとか
あのポートにこの値を書き込んでと依頼するしか無い。さらにマイコン側からは
要求出来ないから定期的にZ80が依頼無いか確認しなきゃならず、それもマイコン側の
負担になる。
スイッチ類の状態なんかはZ80から定期的送るとか、変化があったら送るとかして
マイコン側のメモリに展開しておいたほうが良さそうだけど、こっちはこっちで
やり取りが煩雑になりそう。
570774ワット発電中さん
2017/01/13(金) 10:12:39.57ID:fWBvt8lY
馬鹿だな
Z80なんてモイで、ICE突っ込んで解析すれば一発じゃねぇか。
無駄、無駄、無駄だよそんなトボけたやり方。
やめちまえ無駄だから。
571774ワット発電中さん
2017/01/13(金) 10:15:20.61ID:e4gaEbWB
Z80のICE借りるのが大変じゃね?
572774ワット発電中さん
2017/01/13(金) 10:48:19.06ID:fWBvt8lY
>>571
チューニングカー関係のところ行くとかなりあるよ。
実際旧車のチューンんで燃調いじるときにアレが無いと詰む
573774ワット発電中さん
2017/01/13(金) 11:00:36.02ID:2SBm3Qyt
full ICE は、Z80外せないと無理じゃね?
574774ワット発電中さん
2017/01/13(金) 12:44:04.41ID:Q40kEI++
Z80その他のコントロールバス、アドレスバス、メモリバスを持つCPUシステムを
設計した経験が無いのかな?
Z80側からはデコードした信号が貰えるって書いてあるじゃないか。
8ビットラッチ、3テートゲートの代わりにMCUを使いたい、ってだけの単純な話だ。
(MCU側で前処理、後処理をするのは自由)
575774ワット発電中さん
2017/01/13(金) 12:48:24.30ID:Uv/qsCLm
>>570
Z80外してソケット化すれば>>543にあるTeensy++ 2.0 USB Development Board(AT90USB1286)に
載せ替えた改造例もソフトも公開されたのがあるのだから、Z80外して今更ICEで解析とか意味があるの?
そもそもZ80が行ってる作業を拡張ボード側のマイコンにやらせるのが目的なんだから、既にZ80側の
ROM(こっちはソケット挿しなので外せると)からプログラム吸い出して動作の解析は終わってるんじゃないか?
576774ワット発電中さん
2017/01/13(金) 14:06:40.78ID:fWBvt8lY
こいつの場合、絶対外さねぇみたいな事書いてあるだろ。
その時点ですべて無駄作業だろ。
CPU外さないでゲタとか頭おかしい。絶対不安定動作しますって言ってるようなもんだろう。
それに
解析されてファームが出ているのはあくまでTeensy++のにおいての話だろ?
それも、Z80を外して、載せ替えた上でのファームウェアだ。
実行コードだけで第三者が解析できるのかよ。
開発元のWebページのダウンロードにあるアーカイブもファームとHowToしかねぇ、ソースがない。
ここな
http://gligli.github.io/p600fw/
他のもので代行させるためには、やはり一度ICEぶっこんで、現行の動きをエミュレーションして、一からやんねぇとだめだろ。


どうもこいつは

http://prophet-600.blogspot.jp/
の内容を小出しにして書き出して、
CPUに関しては

http://prophet-600.blogspot.jp/2013/07/prophet-600.html
が該当するみたいなんだよ。
で、サイトの方針(?)としては、CPUを載せ替えて〜ということになっとる。
無駄、無駄、全部無駄。
やりきるには相当な時間と、そして設備、デバッグ環境が必要だ。

さらに、最初の前提から、
「〜は絶対しないのが大前提です。」
とか言い出してる自体で、上のURLの内容はほぼこのケースでは役に立たなくなる。

日本仕様のProphetの環境用に新しくオコすのなら、
実績のある海外のPropet買って上記URLのまんま行うか、prophet5の中古でも買えばいいんじゃね?
577774ワット発電中さん
2017/01/13(金) 16:30:14.65ID:2SBm3Qyt
何故ICEにそこまでこだわるのか?
578774ワット発電中さん
2017/01/16(月) 05:09:03.63ID:02kubHrZ
図星だったか。
シンセのやつ来なくなったな
579774ワット発電中さん
2017/01/24(火) 03:42:00.49ID:Pr8cWj4Q
みなさんの話を聞いていたら、バラバラのICでマイコンボードが作ってみたくなりました。
大昔の月刊誌「RAM」の別冊で6809を使ったマイコンボードの製作本、あったような。
6809CPUは入手できそうだけど、PIOとかタイマーは買えるのか...
580774ワット発電中さん
2017/01/24(火) 04:53:54.98ID:PG92CJ93
無くてもゲートロジックで代替できるよ。
581774ワット発電中さん
2017/01/24(火) 06:49:40.60ID:uitBZojm
74シリーズで作れよ。
582774ワット発電中さん
2017/01/24(火) 13:56:15.77ID:ZRXokxKF
ありがとうございます。
PIOって、パラレルで、I も O も双方向で できればいいんですよね?
すると、
I/Oピン------74HC244====data bus
74HC244 DIR端子-----74HC273出力
data bus=====74HC273(D)
CPU(WRITE)------74HC273(CK)
CPU(ADR)-------74HC138で番地セレクト-----74HC273(EN)
こんな感じでしょうか
583774ワット発電中さん
2017/01/24(火) 14:55:17.24ID:nSMyFkEn
244は4ビットごとのイネーブルしかねーよ
584774ワット発電中さん
2017/01/28(土) 03:36:55.75ID:p0i6/Ri0
教えてください。

たとえば H8 マイコンは、内部16bitで動いています。
それを外部バスモードで動かすとき、8bit幅のメモリが使えます。というかほとんどが8bit幅のメモリーのようです。
内部バスが16bitで動いているのに、なぜ8bitメモリを使うのでしょうか?
16bit幅のメモリーを使った方がいいと思うのです。
8bitメモリのせい(?)で、偶数番地、奇数番地や、インディアンとか、面倒な事を考えないでいいと思うのです。
585774ワット発電中さん
2017/01/28(土) 04:47:30.41ID:5zSfBCyY
ピン数の問題かな? 
それとマイコン使う環境なら基板上にバスの配線も面積的に制約ありそうだし
586774ワット発電中さん
2017/01/28(土) 05:30:02.01ID:PUTlpS25
>>584
インディアン、ウソつかない。

64bit のPCだって、charとか使うけど?
587774ワット発電中さん
2017/01/28(土) 07:10:48.96ID:RUz2bMwK
charが16bitだったり
charアクセスはメモリとのやりとりのみだったり
っていうCPUもあるな

x86-64は元が8bitだったせいで8bit演算も普通にあるが、どちらかというとそういう方が特殊な気がする

インディアンは玉子をどっちから食べるの?
588774ワット発電中さん
2017/01/28(土) 13:12:52.22ID:p0i6/Ri0
>>586
なるほど、ありがとうございます。
そうすると、64bitのCPUでint64の変数をアクセスするときは、
その度に8回も8bitのメモリーアクセスするのでしょうか?
64bitCPUで64bitメモリにすれば、int64アクセスが1回で済むと思うんですが。
589774ワット発電中さん
2017/01/28(土) 13:18:15.14ID:p0i6/Ri0
>>587
僕もそう思います。
もったいないようだけど、on/offのフラグも64bitでアクセスすることもいいと思うのです。

アクセス8回するより、bitを余らせて贅沢に使うほうが高速にできるのではないかと思うのです。
ただし、コストは篦棒(べらぼう)でしょうけど、大量生産が安くしてくれる・・・とか。
590774ワット発電中さん
2017/01/28(土) 13:42:20.09ID:Tc0K51SP
ID:p0i6/Ri0
>というかほとんどが8bit幅のメモリーのようです。
・8bitを1バイトとして、バイトアクセス、バイト単位でのアドレス管理のことを
言ってるのか?

・n-bit CPU などといったとき、何に着目してn-bitと言っているのか、
レジスタなのかバスなのか両方なのか

・メモリーアクセアクセスとはメインメモリにアクセスすることを言っているのか
キャッシュとかそういうことは考えてないのか
591774ワット発電中さん
2017/01/28(土) 15:43:51.53ID:X141XbaO
ん?外部バスの話してるんじゃないの?
592774ワット発電中さん
2017/01/28(土) 19:09:56.62ID:JJVKpAAQ
アキュムレーターの幅じゃないのか。
593774ワット発電中さん
2017/02/02(木) 05:34:36.53ID:8FPs8gjc
でもかつての68K はレジスタ 32Bit だけどデータバス 16Bit だったから
16Bit CPU だった。 後になって 16/32Bit とか呼ばれた。
594774ワット発電中さん
2017/02/02(木) 11:22:38.87ID:J8mi9HFw
>>587
68008とか68EC000もあったな。
595774ワット発電中さん
2017/02/02(木) 12:53:21.19ID:0MLdpgv+
8088は8ビットとして売ってたんだろうか。16ビット?
596774ワット発電中さん
2017/02/02(木) 18:32:21.43ID:LHHU0/9a
386SXも
597774ワット発電中さん
2017/02/04(土) 10:08:53.18ID:h05rVeEm
CPLDからマイコンに変更しようと思ってるけど、PIC以外にIOポートの電流流すことの出来るマイコンってある?
598774ワット発電中さん
2017/02/04(土) 10:26:51.98ID:N38CsVss
どのマイコンも
I2C UART SPIや小さなLEDくらいの電流は流せるよ
599774ワット発電中さん
2017/02/06(月) 14:40:44.06ID:dggoZpPU
大電流ポートなら10〜20mAぐらい流せるのも少なくない
600774ワット発電中さん
2017/02/06(月) 20:07:34.73ID:5KyPy0UC
10mA流せないのってあるの?
601774ワット発電中さん
2017/02/06(月) 20:14:32.90ID:biOS/67H
>>600
H8とか一部のポートをのぞいて数mAだったような。
それからラズパイとかも電流制限は厳しいね
602774ワット発電中さん
2017/02/07(火) 10:01:56.76ID:gYLIR7lz
自分は、デバイス保護のためにも、トランジスタぐらいはつけてるな。
603774ワット発電中さん
2017/02/08(水) 11:59:51.61ID:lbY23A3n
>>602
まぁ、それが正しい道なんだろうけど、せっかくワンチップマイコン使ってるのに、と思っちゃうんだよね。

AVRのtiny2313の資料を見ると、出力電流±20mAでVOL=MAX0.7V、VOH=MIN4.2Vなんだけど、
残念ながらトータルで60mAしかない。
いっそ背中にヒートシンクを貼り付ける?
604774ワット発電中さん
2017/02/08(水) 21:08:52.61ID:WM8UeX+B
20Aぐらい流せるようにしろよ
けちか
605774ワット発電中さん
2017/02/09(木) 00:16:54.87ID:Sms3lQxs
巨大なマイコンwww
606774ワット発電中さん
2017/02/11(土) 05:13:56.70ID:SwSkx0KL
>H8とか一部のポートをのぞいて数mAだったような。
数mAって、どのくらいなんでしょうね。
数個、数本、数日、というときの数は5〜6を想像するんですが。
607774ワット発電中さん
2017/02/11(土) 10:23:51.16ID:83eZHejL
>>606
仕様書くらい見ようよ。
608774ワット発電中さん
2017/02/11(土) 11:55:24.44ID:Hm/XALJK
>>606
1〜9mAかなぁ、想像するの。
数m、十数m、数十m、数百mの、どのレンジかな、くらいざっくりした
609774ワット発電中さん
2017/02/12(日) 03:22:30.91ID:JDlLqGdv
マイコンの機種によって、ポートに流せる電流の制限があるのはわかりますが、
なぜ大小があるのでしょうか?
○○ポートは○○という理由があるので1mA程度しか流せない、のような話が聞けると
今後のプログラム書くのに役立つと思う
610774ワット発電中さん
2017/02/12(日) 05:12:14.82ID:qnJ0PZHo
データーシート嫁
611774ワット発電中さん
2017/02/12(日) 07:11:05.74ID:dE5rcsfp
>>609
出力ポートに使われているトランジスタ(MOS-FET)のON抵抗の大きさと
内部のチップとピンを接続するボンディングワイヤーなどが制約になっているかな。
後者はおもに、全ピンの合計としてGNDやVCCに流せる電流に関わってきます。

前者は、近年はどんどん改善されてきています。
ON抵抗が小さいトランジスタを作れるようになってきたのでしょうね。
昔は特にPch MOS FETは良いものが作れなかったせいか、
マイコンからの吐き出し電流が、吸い込み電流に比べて極端に少ないものが多かったものです。
LEDを灯すのにVCCに吊ったLEDのカソード側をマイコンにつなぐことが多いのはその名残だと思います。
612774ワット発電中さん
2017/02/12(日) 10:19:35.87ID:399lKsLn
大電流流せるってことはそれだけオーバーシュート・アンダーシュートするしノイズも出まくるしいいことないんだよ。
613774ワット発電中さん
2017/02/12(日) 15:06:20.93ID:fjQHE49+
FET の キャパシタンスだよ
低電流だとキャパシタンスが少ない

つまり低電流仕様の物程、高速で ON-OFF 出来る
外部高速メモリとかクロック出力するような場合
このキャパシタンスが邪魔になるんだよ

ON抵抗とかはあんまり関係ない
まぁインピーダンスというくくりでは、、
614774ワット発電中さん
2017/02/12(日) 15:47:36.40ID:dE5rcsfp
>>613
>つまり低電流仕様の物程、高速で ON-OFF 出来る

そうなんですか?
ここで論じられているのはICの出力ピンの駆動能力なのですが、
標準ロジックで、高速なものほど出力の駆動能力が低電流になっているような具体例を出せますか?

一般的には、同じ電圧であれば、入力ピンの静電容量を減らし、出力ピンの駆動能力を上げることで、
デバイス間で発生する遅延を小さくしてきましたよ。
615774ワット発電中さん
2017/02/12(日) 21:54:00.35ID:fjQHE49+
入力の静電容量が減ったら駆動電流が増えるわけじゃない
ゲートの開閉が速くなるから遅延が少なくなる

ゲートのキャパシタンスと駆動容量の関係については
MOS-FETのデータシートとか半導体の本でも読んでください
標準ロジックでってのがよくわからん
何で標準ロジックなんだ?
616774ワット発電中さん
2017/02/12(日) 21:56:33.98ID:4HQns2kS
こんなところにソース厨
617774ワット発電中さん
2017/02/12(日) 22:21:00.70ID:dE5rcsfp
>標準ロジックでってのがよくわからん
異なるマイコンで比較してもわからないですよ。
標準ロジックを例にしたのは、例えば74xx04同士で異なるスピードのものを比較できるからですよ。

>低電流仕様の物程、高速で ON-OFF 出来る
618774ワット発電中さん
2017/02/12(日) 23:09:53.29ID:fjQHE49+
ON抵抗が要因と言ったから違うと言ってる
キャパシタンスだと言ってる
ドレイン電流増やせば面積ふえる
必然的に静電容量増えるのは当たり前

だいたい入力静電容量減らせば駆動増える
とかおかしいだろ
入力静電容量なんてどうやって減らすんだ?
標準ロジックだと入力静電容量減らせるのか?
ダンピング抵抗減らす事言ってるの?
619774ワット発電中さん
2017/02/12(日) 23:15:53.21ID:dE5rcsfp
>>618
俺が>>614

>入力ピンの静電容量を減らし、出力ピンの駆動能力を上げることで

と書いたのを

>だいたい入力静電容量減らせば駆動増える

と読まれたのですか?
620774ワット発電中さん
2017/02/12(日) 23:31:49.25ID:fjQHE49+
あー標準ロジックの話じゃないのか
標準ロジックとか出すから分からなくなるんだよ

駆動電流増やして入力静電容量減らせば
高速化するのは当たり前
オレが言ってるのは
ON抵抗とは違う。静電容量だと言っているだけ

静電容量減らしたけりゃドレインの面積減らせばイイ
でも電流増やしたい
どうするのか?
ドレインとゲートの間を薄くする
それが技術の進歩
結果にON抵抗も低くなる
弊害として耐圧が減る

だから原因はキャパシタンスだと言っている

標準ロジック関係ない
621774ワット発電中さん
2017/02/12(日) 23:51:33.86ID:dE5rcsfp
>>620
元の質問が>>609であることがわかっていれば、混乱する必要はありませんよ。

軸足は大切です。ブレてしまったときは元に戻りましょう。

元の質問は、
マイコンの出力ポートに流せる電流になぜ大小があるのでしょうか、です。
つまり、
あるマイコンは、IOが-1mAで、VCC-0.5Vになる。
あるマイコンは、IOが-5mAで、VCC-0.5Vになる。
みたいな話ですが、これが、「出力トランジスタのON抵抗が原因」とするのは違うとおっしゃるわけですね?

仮にそれがうんたらかんたらの結果であったとしても、結果的に差が出てているのは出力トランジスタのON抵抗の違いです。
622774ワット発電中さん
2017/02/12(日) 23:52:50.60ID:dE5rcsfp
>あるマイコンは、IOが-1mAで、VCC-0.5Vになる。
>あるマイコンは、IOが-5mAで、VCC-0.5Vになる。

すみません。これはIOH、VOHの値の例です。
623774ワット発電中さん
2017/02/12(日) 23:55:21.90ID:3cDueaFQ
頭悪すぎw
規格がある訳じゃないんだから、各社まちまちなのが当たり前。
624774ワット発電中さん
2017/02/13(月) 01:34:00.87ID:wavLujkh
抵抗減らす技術が足引っ張ってるのか?
静電容量減らす技術が足引っ張ってるのか?
って考えると

静電容量だと思うけどな
625774ワット発電中さん
2017/02/13(月) 07:07:17.78ID:ELy3bizQ
>>623
何が議論対象か理解しないお前がバカなだけ
626774ワット発電中さん
2017/02/13(月) 10:56:51.19ID:9KSioJAD
スペックシートは値半分で見積もることにしている
627774ワット発電中さん
2017/02/13(月) 12:54:44.48ID:zMtzmqaL
半導体屋バックエンドの範疇っぽいけど、知っときたい。
ハード屋さんも範疇なのかな。FETの使い方、の一部とか。

速度、電流、絶縁抵抗がトレードオフで、
どれ重視してるか、ってことで良いのかな
628774ワット発電中さん
2017/02/13(月) 13:19:26.28ID:xQvPchfl
CPUのI/Oに数mAしか流せない時代に比べれば、±20mAも流せるなんて良い時代になったもんだ、
と俺は感謝の日々を送っているぜ、皆の衆。
629774ワット発電中さん
2017/02/13(月) 16:28:15.45ID:bHd8ZBiM
>>625
無知な癖に知ったかして「議論」wしたつもりになってるお前が間抜けwww
630774ワット発電中さん
2017/02/13(月) 17:27:48.85ID:NHyEsbe9
MPLAB X IDEで.lib形式のライブラリをリンクする方法を教えてください
それっぽい項目をいろいろいじってみたんですがうまくいきません
631774ワット発電中さん
2017/02/14(火) 05:33:06.17ID:0BSqSvSS
ダウンロード&関連動画>>

@YouTube


ダウンロード&関連動画>>

@YouTube

632774ワット発電中さん
2017/02/14(火) 08:36:59.54ID:trPdNjAE
>>630
プロジェクトペインのライブラリを、右クリックで希望のライブラリを登録するのではダメなの?
633774ワット発電中さん
2017/02/14(火) 19:17:51.09ID:o8t/FTih
>>632
それは試しましたがライブラリ内の関数を呼び出してもundefineが帰ってくるのでリンクされてないようです
634774ワット発電中さん
2017/02/14(火) 19:55:25.86ID:CoKa6Rcb
エラーはコンパイラで出るのかリンカで出るのか識別しよう
635774ワット発電中さん
2017/02/14(火) 20:13:27.51ID:KIAMDofF
PICのCCSCコンパイラで2文字目に「,」が入ってるか確認したいのですが、この書き方ではダメだと言われてしまいます。

if(strcmp(string[1], ,) == 0)

これはstring[1]が悪いのでしょうか? それとも「,」の指定が悪いのでしょうか?ちなみに@や_でもダメでした。
PICスレでCCSCに詳しい方がいないのでこちらでお願いします。

もしくはどこか外部のコミュニティとか教えていただけますでしょうか?
636774ワット発電中さん
2017/02/14(火) 20:22:15.75ID:2ixwPOZX
>>635
そもそもC言語的にめちゃくちゃ
Cの入門書とか見た方がいいぞ
637774ワット発電中さん
2017/02/14(火) 20:23:06.60ID:CoKa6Rcb
文字列の比較だから、文字列一個じゃ足りないし、コンマ2つは多すぎ
638774ワット発電中さん
2017/02/14(火) 20:27:07.25ID:zCDuf8V6
Cの基本だから
C言語なら俺に聞け 138 [無断転載禁止]&#169;2ch.net
http://echo.2ch.net/test/read.cgi/tech/1481372036/
でいいかと。初心者にも優しい
639774ワット発電中さん
2017/02/14(火) 20:27:51.82ID:2ixwPOZX
>>635
2文字目が , ってことなら

if (str[1] == ',')

ってやりたいんだろうなとは思うけど
640774ワット発電中さん
2017/02/14(火) 20:41:30.23ID:KIAMDofF
>>637
文字列から一つだけ引き出して比べたかったのですが…。
一つ目は変数を分けるコンマで、二つ目がこれと比べなさいというコンマにしていました
CCSCの紹介でも二つ目の文字列がベタ打ちされてたので…。

>>638
了解しました、次回からはそっちで聞いてみます。

>>639
エラーが消えました…orz
今回の分で言えばstrcmp要らないんじゃぁ…

どうにかなりそうです、ありがとうございました。
641774ワット発電中さん
2017/02/14(火) 22:05:02.35ID:o8t/FTih
>>634
この場合はそもそもリンクされてないのでコンパイラ側からしかエラーはでません
その他試してみたこととしてはプロジェクトのプロパティのxc32-ld項目からライブラリを指定する項目?があったのでそれに.libファイルのパスを指定してみたのですがそちらの場合はリンカーからcannot findが帰ってきます
642774ワット発電中さん
2017/02/14(火) 23:46:52.35ID:YEPmRoFp
>>635
1文字比較なら>>639のでいんじゃないかな。
strcmp使うなら、strncmp(string[1],",",1)とか?
643774ワット発電中さん
2017/02/15(水) 06:46:45.80ID:dtBSId5C
>>642
string[1]

stringは文字列(もしくはchar*)の配列?
644774ワット発電中さん
2017/02/15(水) 07:13:28.44ID:SxMBqo2O
>>643
文字列(バイナリ文字列)だよ。
strcmpと違って\0を終端とみなさず比較する。だから長さ指定がある。
645774ワット発電中さん
2017/02/15(水) 07:35:05.05ID:U/P3ClWt
&string[1]?こりゃ不吉だ
646774ワット発電中さん
2017/02/15(水) 07:56:32.18ID:kjFlexRD
>>644
よく読めアホ
647774ワット発電中さん
2017/02/15(水) 09:11:42.02ID:dtBSId5C
>>644
strncmpの第一、第二引数は char* だよ。
int strncmp(char *s1, char *s2, char len);

>>642のstringが文字列(バイナリ列でも)ならば、string[1]は、その文字列の2番目のcharそのもの。
だから642の使い方は間違いです。
648774ワット発電中さん
2017/02/15(水) 11:44:35.40ID:exgephxY
>>647
ああ、そか。アドレス渡さないとか、&。
とすると、第2引数はそれ用に配列用意しないとです?
649774ワット発電中さん
2017/02/15(水) 12:40:20.68ID:dtBSId5C
>>648
","
↑これが内部的には 0x2C,0x00 の2文字の配列になっていて、上の例では
strncmpの第二引数に、その配列の先頭番地(つまりchar*)が渡されています。
(文字コードは環境依存はありますが、細かいことは横に置いておいて…0

単に文字を比較したいだけのために、2文字ぶんのエリアが使われるのはもったいないので、
>>642で書いておられる通り、>>639の方法で良いと思います。
650774ワット発電中さん
2017/02/15(水) 13:22:12.49ID:hfE6FNgv
マイコンのソフト特有じゃなくて、C言語の話だよな
この板じゃない方が良いんじゃない?
651774ワット発電中さん
2017/02/15(水) 13:23:39.24ID:hfE6FNgv
>>647
標準ライブラリのstrncmpのことならプロトタイプが違う
652774ワット発電中さん
2017/02/15(水) 18:47:19.82ID:dtBSId5C
>>651
今は、

int strncmp(const char * s1, const char * s2, size_t n);

ですね。const はC89から入ったんでしたっけ。

>>644さん
プロトタイプに違いはあっても、>>647の話に変わりはありません。たぶん。

問題になるような違いがあったら、具体的にご指摘ください > みなさん。
653774ワット発電中さん
2017/02/15(水) 19:00:54.19ID:kjFlexRD
2文字目だけの比較ら >>639

文字列が2文字以上である保証が無いときは1文字目も調べないといけない
654774ワット発電中さん
2017/02/15(水) 23:14:21.37ID:rGn/Djtn
>>649
コンパイラやらが、メモリに領域用意して中身入れて、先頭アドレス渡してくれてるんですね。
655774ワット発電中さん
2017/02/16(木) 00:53:08.70ID:Nhdbpw35
>>645
奇数番地アクセスでアボートするCPUを思い出した。
656774ワット発電中さん
2017/02/16(木) 04:56:12.29ID:fxpUlETV
複数番地をまたがったアクセスで、アラインメントに制限があるのはごくごく普通
バイト単位にアクセス可能なマイコンで、2バイト単位の読み書きを行う場合など
PCの方が特殊

1バイト単位のアクセスで奇数番地にアクセス出来ないのは聞いたことがない
657774ワット発電中さん
2017/02/16(木) 15:48:08.84ID:aQujFnna
>>630
自己解決しました
658774ワット発電中さん
2017/02/16(木) 16:27:43.56ID:TZZjkwvP
>>657
せっかくだからどうやったかを書いていって
659774ワット発電中さん
2017/02/16(木) 18:15:31.28ID:fxpUlETV
プロジェクトに加えるか、リンカの設定で指定するか
じゃない普通は
MPLABの場合は知らないけど
660774ワット発電中さん
2017/02/18(土) 12:59:51.08ID:O5klGGOu
>>657
僕も知りたい。
661774ワット発電中さん
2017/02/23(木) 19:53:13.37ID:V6iQXKz5
複数の機器と別々に通信がしたいけれど内蔵のシリアル通信モジュールが1チャンネルしか無いので
仕方なくタイマ割り込みを使って手作業でGPIOに1ビットずつ入出力しようと思うのですが
このように割り込みを使用した通信は一般的なのでしょうか?
それとも邪道ですか?
662774ワット発電中さん
2017/02/23(木) 20:02:26.31ID:mQMknegb
邪道。

シリアル通信にも色々あるけど、非同期だと受信は厳しいかもよ。
663774ワット発電中さん
2017/02/23(木) 20:20:20.41ID:ZE7cSIje
シリアル通信モジュールがのる前は非同期でもタイマを頼りにIOで通信するのが一般的だったし
今でも使うだろ
664774ワット発電中さん
2017/02/23(木) 20:53:35.15ID:mQMknegb
シリアル通常モジュールが載る前ってのはいつのこと?16550が出る前?

ワンチップマイコンでやるときはあるけど、そもそも邪道だろ。
665774ワット発電中さん
2017/02/23(木) 21:03:42.14ID:ND3lVDJY
シリアル通常モジュールは通常載ってるだろw
666774ワット発電中さん
2017/02/23(木) 21:20:56.88ID:3aOlJ+EG
邪道も何も必要な機能(仕様)なら実装するだけの話。
667774ワット発電中さん
2017/02/23(木) 22:03:33.46ID:ZqNRlJ/D
必要な機能の乗ったマイコン持ってくりゃいいじゃない。
AVR1個でUARTx2,I2Cx1,SPIx3なんて変態なこともしたな。
668774ワット発電中さん
2017/02/23(木) 22:48:17.74ID:mQMknegb
>>666
それは明らかにマイコン選択ミスだろ。
趣味ならいいけど。
669774ワット発電中さん
2017/02/23(木) 22:53:32.96ID:Q1kYuObf
>>661
趣味ならあり
670774ワット発電中さん
2017/02/23(木) 23:19:40.83ID:8G8DNpNF
>>666
安いATmegaにUSB1.0喋らすの流行った時期を思い出した
671661
2017/02/24(金) 00:48:34.65ID:n6JhXLK3
皆さんありがとうございます
趣味ですがマイコンの選定から見直すことにしました
672774ワット発電中さん
2017/02/24(金) 07:25:03.86ID:ivA/nqj2
2チャンネルUARTとAVRのレスを読んで、
昔買った秋月のAKI-RS232Cラインモニターキットを思い出した。
http://akizukidenshi.com/catalog/g/gK-00045/
いまいち使い勝手が悪いので、
2チャンネルUART+バッファ(SRAM)の多いAVR機種(mega1284など)で作り直して欲しい。
673774ワット発電中さん
2017/02/24(金) 07:31:15.72ID:z0P8/1i7
>>663
8085AのSID/SODのことだよな。
674774ワット発電中さん
2017/02/24(金) 08:31:14.84ID:nNc7BKyh
>>672
作り直したんじゃなくて、作り直して欲しいのかい。
他力本願なやつ
675774ワット発電中さん
2017/02/24(金) 11:40:25.12ID:Rg9EFerY
シリアルIOなんて何クロックかに1回動くだけなんだから、
時分割で容易に複数チャネル持たせれないものなのかな
676774ワット発電中さん
2017/02/24(金) 11:48:48.65ID:jnjG7X/b
通信ビットレートの16倍で監視する必要があるので、
その時間で割り込みが入りまくっても良いなら、出来るんじゃないかな。
その他に、
通常の処理にも時間が必要だし。
677774ワット発電中さん
2017/02/24(金) 12:17:54.44ID:q6pXJz/Y
>>675
何クロックかに一回動くなんて、もの凄く早いシリアル通信だな。
678774ワット発電中さん
2017/02/24(金) 14:10:46.32ID:Sed1J5FJ
>>676
>通信ビットレートの16倍で監視する必要がある
受信データの立下り(スタートビットの頭)で割り込みかけるように
してやれば、常時監視する必要はない
その後の処理は、ビット幅ないしその半分の時間ごとに
タイマ割り込みかポーリングで受信データ(ビット)を取り込めばいい
679774ワット発電中さん
2017/02/24(金) 14:16:41.25ID:l+qLOWZ5
ぶっちゃけPC使うラインモニタなら、USB-シリアル2個挿してすべてPC側でやればいいだけ。
専用ハードなんかいらん
680774ワット発電中さん
2017/02/24(金) 17:17:03.43ID:ivA/nqj2
演算や履歴によるトリガ条件でサンプリングの開始・停止などをやるなら、
専用ハードで作って貰ったほうが(他力本願でスマン)、応答性が良いような気がする。
681774ワット発電中さん
2017/02/24(金) 21:42:40.00ID:/Svg+QxX
みえちゃんは便利だったな。
壊れちゃって悲しい。
古い奴で対応速度が遅いから直すの迷ってる。
682774ワット発電中さん
2017/02/24(金) 21:46:49.30ID:z0P8/1i7
>>679
送受信の関係わからないよ
683774ワット発電中さん
2017/02/24(金) 22:16:45.29ID:p8jucnHX
数バイト程度なら前後はあるかもしれんが、送受信の関係くらい判別できる。
その気になればExcelVBAでも作れる。

てかノートPCあるのにわざわざちえちゃん(みえちゃんの上位機)持っていくのがめんどくさいから作った。
USB1.1が1ポートしか無かったがハブでUSBシリアル2個さして十分だったよ。
もちろん制御線も全部見れる。PCなめちゃいかん。
684774ワット発電中さん
2017/02/25(土) 00:19:21.75ID:8wzQ7vMw
>>683
>送受信の関係くらい判別できる。
判別できるのは通信内容がわかってるからだよな。

受信時刻を取得して、なんて話はやめてね。
685774ワット発電中さん
2017/02/25(土) 00:27:08.49ID:ztxaH8Pg
お前ラインモニタ使ったことねーだろ?
686774ワット発電中さん
2017/02/25(土) 00:49:33.81ID:8wzQ7vMw
勘違いしてるみたいだな
687774ワット発電中さん
2017/02/25(土) 09:30:41.07ID:sxrGthbW
>>684
送信と受信は別ポートだろ。
688774ワット発電中さん
2017/02/25(土) 10:17:41.79ID:8wzQ7vMw
>>687
>だろ。
別ポートなんて大前提じゃないのかな? だって、>>679も「USB-シリアル2個挿して」って書いてるよ。読んだ?
689774ワット発電中さん
2017/02/25(土) 13:40:38.74ID:ztxaH8Pg
一つのプログラムで一つのポートしか扱えないと思ってる?
T分岐ケーブル作ってUSBシリアルの受信機能だけ使うんだよ。
一つはモニタする送信側(TXD,RTS,DTR)もう一つは受信側(RXD, CTS,DSR)
二つのポートを交互にポーリングするだけでさほどのずれもなく監視できる。
くだらねえことだが『実際にやった』んだよ。
690774ワット発電中さん
2017/02/25(土) 15:16:49.98ID:Wu8tF+Tg
実際に出来るしやったこともある。
というか、そういうアプリ有るでしょ。
ただ、完全な第3者じゃないという点は気になるか。

秋月ラインモニタにくらべるとみえちゃんは取り回し凄く楽だったな。
691774ワット発電中さん
2017/02/25(土) 15:51:03.34ID:ObcMdhXm
そういえば何の話をしているんだ
692774ワット発電中さん
2017/02/25(土) 17:02:27.08ID:PM/k/HIf
みえちゃんの思い出
693774ワット発電中さん
2017/02/25(土) 22:59:54.66ID:8wzQ7vMw
>さほどのずれもなく監視できる。
そこが「さほど」かどうかは用途次第って話ですよ。
あなたが、あなたの用途にそれを「さほど」「十分」と考えていることについては構わないのです。

でも、自分が「さほど」と考えることは、他人も「さほど」と考えないといけない、とは思ってないでしょ?
694774ワット発電中さん
2017/02/25(土) 23:41:53.29ID:ztxaH8Pg
完全に全二重でお互いが勝手にデータを投げ合ってる状況なんざそうそうあるもんでない。
あんたがそんな特殊な業界だってんなら黙ってプロ用のラインモニタ買えばいい。
そんな人にまで簡易なものを押し付ける気はないよ。

そして願わくばその「さほど」が問題となる具体ケースを後学のために教えてほしい。

一般的に多いのはコマンドレスポンス方式だろうから、それ前提であることを断らなかった俺にも非がある。
GPSなんかが割と好き勝手に双方からデータ飛んでくるが、それでも俺が言ったようなやつで十分なもんでね。
695774ワット発電中さん
2017/02/25(土) 23:50:56.27ID:bR6HQd5i
年寄り喧嘩せず
696774ワット発電中さん
2017/02/26(日) 07:36:12.10ID:BUUUvL22
俺が最初に使ったラインモニタはデータ間の時間(mS)も表示してくれて便利だった。
(送信中に[Cr]を受けて中断して、次に送り出すまでの遅れ時間は?などで、
あるいはRS485の方向切り替え時間の測定などで)

その次に使ったラインモニタはスタンドアロン(液晶表示)で長く愛用したが、
ある日、久しぶりに使おうと取り出したら、バッテリが液漏れしていて
ランドやリードがあちこち溶けて基板がグチャグチャ、思わずオーマイゴッドと俺は叫んだぜ。
必死になって修復を試みたが動作せず・・・捨てた・・・
697774ワット発電中さん
2017/02/26(日) 12:16:34.79ID:BUUUvL22
後で思い出したのだが、三菱重工の機械でACK、NAK、EOTなどの制御コードを
1バイトづつ受け渡ししながら進行していくプロトコルがあった。
(「JISーX5002準拠のポ゚ーリング/セレクティング方式」だったかな?)
そういう用途なら送受信の順番を正確に表示してほしいだろうな。

ま、何にせよ、AKI-RS232Cラインモニターキットのmega1284やXmega1284D4版を
\3K以下で出してくれたら俺は他力本願で買っちゃうよw
698774ワット発電中さん
2017/02/26(日) 13:23:46.56ID:VdIJNGuQ
>>698
たぶん僕もそれを使っていた。LINE-EYEでしょ?
メンブレンのスイッチシートが破れてきた。今でも使ってる。
相手と自分のデータの整合不良には「審判」になってくれて、
何度も助かってる。
699774ワット発電中さん
2017/02/26(日) 16:32:15.96ID:BXTLhQyj
>>697
\3K以下か、誰かがお商売で作るのだとすると、なかなか普通じゃ難しいな。

ちょっと違うけれど、ロジアナソフトのSIGROKが面白そう。
あんな感じで、「標準化されて割と存在するハード」+「フリーソフト」みたいなのだったら実現できるのかな。
700774ワット発電中さん
2017/02/26(日) 16:40:31.14ID:rmEvy8Dm
SIGROKってなんだろうと思ったらPulseViewのことだなw
とっくにお世話になってたわ。
701774ワット発電中さん
2017/02/26(日) 17:05:01.57ID:6McKCycl
組み込み仕事を10年ぶりぐらいにまた始めようと思うのだけどついていけると思いますか?
702774ワット発電中さん
2017/02/26(日) 17:13:26.38ID:5ThY8I33
>>701
Arduinoやmbedで創業とかうじゃうじゃ生えてるよね
703774ワット発電中さん
2017/02/26(日) 17:18:07.96ID:Zx+8XZz4
>>701
組み込みって言っても豆粒みたいなマイコンから組み込みwindowsまでいろいろだからなあ
704774ワット発電中さん
2017/02/27(月) 12:03:55.35ID:1UQ425zr
>>701
仕様(機能と価格と納期)を満足できるならやっていけると思うよ。
705774ワット発電中さん
2017/02/28(火) 10:14:45.55ID:+10qECQ3
世間にはブラック案件も結構あるようだから気を付けて〜
706774ワット発電中さん
2017/02/28(火) 15:36:28.39ID:RwoSeGKX
>>704
それってトートロジーじゃね?
707774ワット発電中さん
2017/02/28(火) 22:40:24.37ID:VpGsa47M
そうだね、さすがに「ラスパイ使って1週間でやれ!」みたいなのは
ないと思うけど、そういうのは受けなきゃいいだけだと思う

失敗はあるかもしれないけど、それを恐れてただ時間経過するのよりは
いいと思うな >>オレ
708774ワット発電中さん
2017/02/28(火) 23:08:24.78ID:WX7khy2P
10年前だったら絶対無理だった機能・価格・納期でも
ラズパイ流用でちゃちゃっとできちゃったりして
でも発注する側もそれをわかっていて、いいんだか悪いんだか
709774ワット発電中さん
2017/02/28(火) 23:36:45.87ID:qan/vkbm
>>708
仕事したことないな
710774ワット発電中さん
2017/03/06(月) 14:18:57.02ID:tUjjHHdX
ロータリーエンコーダーのプログラムについて質問です。

A相の↑の時のB相が H か L かで、++ か --かを判定しています。
見かけ上ちゃんと動くのですが、
ツマミの「カクン」と来るのを「山」「谷」と表現するなら、
通常が谷で、現在の谷→山→隣の谷 と移動するわけですが、
現在の谷→山→現在の谷 と戻ってくる場合でも ++ してしまいます。
作り方が悪いんでしょうか? それともエンコーダーがいけないのでしょうか?
711774ワット発電中さん
2017/03/06(月) 14:36:42.46ID:TsRBpNUX
A相の↑の時、を変化割込で検出してるなら↓でも判定が動いてるかも
判定内でA=Hを確認してみるとかどお?
エンコーダが悪いとチャタが出るかもしれない、けど++も--も不定になりそう
712774ワット発電中さん
2017/03/06(月) 14:42:24.20ID:kCRmOlb8
A相の↑で正逆判断&カウントするんだから
山→現在の谷でカウントするわけないべ?

↓でカウントさせてんのか?
713774ワット発電中さん
2017/03/06(月) 14:46:36.47ID:kCRmOlb8
↑でカウントアップ
↓でカウントダウンさせるなら
↑時の正逆判定と
↓時の正逆判定を分けてやらんとだめだね

正逆判定だけ1つでやってたら
カウンターがずれる
714774ワット発電中さん
2017/03/06(月) 15:12:08.43ID:tUjjHHdX
ありがとうございます。
あれっ? 確かにおかしいですね。もう一度ソースを見直します。
715774ワット発電中さん
2017/03/06(月) 19:51:53.69ID:jsQfvd7m
モーターとエンコーダーの間のギヤが振動していたこともあります
716774ワット発電中さん
2017/03/07(火) 13:38:30.01ID:4HNnVcsm
昔、
サーボバルブを使った油圧の位置決め装置の停止位置が不規則に不定期に微妙にズレる」
というクレームで地方工場に泊まりがけで出張したら
なぁんとプログラムには何の関係も無い、ロータリエンコーダを固定しているネジの緩みが原因だった
あまりにも低レベルなミスで、作業した電気屋さんに謝られたけど
こちらは出張費も交通費も宿泊代も貰っているので別に構わないw
717774ワット発電中さん
2017/03/08(水) 07:02:31.82ID:f+JE5pR7
アホなプログラマでなければ「不規則に不定期に」でソフトが原因でないことが分る。
718774ワット発電中さん
2017/03/08(水) 07:33:09.61ID:KYPIU0Lw
なるほど面白い発想だ
719774ワット発電中さん
2017/03/08(水) 07:59:58.91ID:ip96gr4M
>>717
不規則に不定期に発生するソフトのバグを知らないと
720774ワット発電中さん
2017/03/08(水) 15:04:29.22ID:f+JE5pR7
ソフトにバグがあるなら、バグのある部分を実行すると100%の確率で異常になる。
実行しなければ異常になる確率は0%。

ソフトにバグがあるけど、実行する、しないにかかわらず、
「不規則に不定期に」異常になるなら、そのCPUは壊れている。

*異常な状態が無視できるレベルか致命的なレベルか、
 回復処理が可能か、などは別問題
*ノイズなどで誤動作するのはソフトのバグではない。

と思うけどどうでしょうか、単に定義の問題かもしれないけど?  >>719
721774ワット発電中さん
2017/03/08(水) 16:07:18.01ID:rF4lVSTx
719 じゃないけど。
タイミングが絡む処理のばあい、判定がいい加減だと再現性の乏しいバグになる場合がある。
あと、特定のデータを受信したり生成した場合のバグなんかだと、原因が特定できれば再現性はあるけど、
それまでは再現したりしなかったりで悩まされることがある。
722774ワット発電中さん
2017/03/08(水) 18:16:03.62ID:g3iFaT9M
タイマー割込と邪心割込がダブった時とか、
Long変数を分割計算中に、割込がかかった時とか
723774ワット発電中さん
2017/03/08(水) 20:12:51.25ID:B1sAZfL4
複合要因だと再現しにくいよね。

放射能の影響かも知れないし。
724774ワット発電中さん
2017/03/08(水) 20:37:04.22ID:LN8EiHB7
>>720
素人か?
725774ワット発電中さん
2017/03/08(水) 20:39:55.55ID:3CAkqrJC
>>720
>そのCPUは壊れている。

素人丸出しだな。
726774ワット発電中さん
2017/03/08(水) 21:15:00.77ID:k1WMrZjy
z80上位互換
KLC16030のバグを指摘した事がある
メーカーの営業は認めなかった

3段論法
1沢山販売している
2苦情は1っかいもない
3したがってあなたの指摘は間違っている

うちの上司と同じだった

上司のバグを指摘したら
会社辞めさせられた
727774ワット発電中さん
2017/03/08(水) 21:21:50.50ID:oBqHKYjf
>>726
ルネサスの悪口ヤメロ
728774ワット発電中さん
2017/03/08(水) 23:00:05.83ID:4rEj0qxZ
>>720
他の条件で書き換わるメモリ値とか、初期化を忘れていてある値のときに発動する問題とか
729774ワット発電中さん
2017/03/09(木) 14:36:26.19ID:/91F070h
A.ソフトが原因で不規則に不定期に異常になるように見える、と
B.ソフトが原因で不規則に不定期に異常になる、とは異なる。
知識がある人ならAのソフトの異常は不規則・不定適には見えない。
ソフトの異常を再現出来るなら、それは不規則・不定期ではなくて規則性があるという事だ。
つまりBは成立しない。

不規則、不定期とは何か? 哲学的だなぁ、なぁんちゃってw。
皆さん、アホのたわ言です、もう無視して下さい、レスは無用です、お願いします。
730774ワット発電中さん
2017/03/09(木) 14:39:59.59ID:/91F070h
あれ?変な変換ミスがあるな、もういいや。
731774ワット発電中さん
2017/03/10(金) 22:36:58.30ID:5brUe/8I
PIC 12F683でタイマー0とタイマー1を使って点滅灯を作っていますが
何故か点灯してしまい悩んでいます。アドバイスなど頂きたいと思います。

GP5,GP4,GP3を入力としそれぞれ外部でプルアップしSWでグランドに落としています。
GP0,GP1,GP2を出力とし抵抗とLEDを繋いでいます。
タイマー0を10msで動作させ6回連続でSWが押されたと判断しています。
タイマー1は200msで動作させLEDの点滅に使っています。
GP0,GP1はそれぞれGP5,GP4がオンで点滅開始、再度オンで消灯。
GP2はGP3がオンで点灯、再度オンで消灯とします。

しかしながら、下記のプログラムで動作させるとGP5,GP4は点灯してしまい点滅しません。
GP3のLEDはSW操作に合わせて点灯、消灯が出来ました。

何処に問題が有るのか解らず2日考えています。
アドバイスなど頂けると幸いです。

int swcount1 = 0; // GP5カウント用
int swcount2 = 0; // GP4カウント用
int swcount3 = 0; // GP3カウント用
int led1 = 0;
int led2 = 0;

void interrupt(){ // TMR0による10msec毎割り込み
if(INTCON.T0IF == 1){
INTCON.T0IF = 0; // TMR0フラグクリア
TMR0 = 99; // TMR0 初期値 99

if(GPIO.B5 == 0){swcount1++;} // GP5が押された時間カウント用
else{swcount1 = 0;}
if(GPIO.B4 == 0){swcount2++;} // GP5が押された時間カウント用
else{swcount2 = 0;} // GP5が押されてなければカウントクリア
if(GPIO.B3 == 0){swcount3++;} // GP3が押された時間カウント用
else{swcount3 = 0;} // GP3が押されてなければカウントクリア

if(swcount1 == 6){
if(led1 == 0){led1 = 1;}
else{led1 = 0;}
}
if(swcount2 == 6){
if(led2 == 0){led2 = 1;}
else{led2 = 0;}
}
if(swcount3 == 6){GPIO.B2 = ~GPIO.B2;} // GP3のカウントが6回目でGP2を反転

if(swcount1 >= 10){swcount1 = 9;} // GP5のカウントが10回以上なら9回を維持(長押しでの再度反転防止)
if(swcount2 >= 10){swcount2 = 9;} // GP5のカウントが10回以上なら9回を維持(長押しでの再度反転防止)
if(swcount3 >= 10){swcount3 = 9;} // GP3のカウントが10回以上なら9回を維持(長押しでの再度反転防止)
}
if(PIR1.TMR1IF == 1){
PIR1.TMR1IF = 0;
TMR1H = 60;
TMR1L = 176;
if(led1 == 1){GPIO.B0 = ~GPIO.B0;}
else{GPIO.B0 = 0;}
if(led2 == 1){GPIO.B1 = ~GPIO.B1;}
else{GPIO.B1 = 0;}
}
}
732774ワット発電中さん
2017/03/10(金) 22:37:19.41ID:5brUe/8I
void main() {

OSCCON = 0b01110001; // クロック8MHz
ANSEL = 0; // アナログ入力使用しない
CMCON0 = 7; // コンパレータ使用しない
TRISIO = 0b00111000; // 入出力設定GP5,4,3が入力、GP2,1,0が出力
GPIO = 0; // 各端子0へリセット

T1CON = 0b10111101;
TMR1H = 60;
TMR1L = 176;
PIR1.TMR1IF = 0;
PIE1.TMR1IE = 1;
INTCON.PEIE = 1;
OPTION_REG = 0b10000110;
TMR0 = 99;
INTCON.T0IF = 0;
INTCON.T0IE = 1;
INTCON.GIE = 1;
while(1){

}
}

よろしくお願いいたします。
733774ワット発電中さん
2017/03/10(金) 23:56:45.14ID:2XN5NHfN
本当に200msで割り込みに入ってる?
734774ワット発電中さん
2017/03/11(土) 00:03:44.04ID:gcr4df9E
めんどくせー
735774ワット発電中さん
2017/03/11(土) 00:28:02.89ID:LUp0fSIi
>>733
レスありがとうございます。

試しに、タイマー0での割り込みでは何もしないで、
タイマー1の割り込みでGPIO.B0 = ~GPIO.B0;だけを書いて
オシロで見たところパルス幅200msのパルスが確認できたので
タイマー1の200msでの割り込みは出来ていると思います。
736774ワット発電中さん
2017/03/11(土) 01:02:31.38ID:U6dK89nR
>>735
10msと200msなら、1つのtimerで、全部やったほうが、混乱しなくていいと思うよ。

状態遷移を使って書くと間違いが減ります。

#define off 0
#define on 1

void interrupt(){             // TMR0による10msec毎割り込み
static unsigned char S = 0;    // 状態

  if(INTCON.T0IF == on){
    INTCON.T0IF = off;         // TMR0フラグクリア
    TMR0 = 99;             // TMR0 初期値 99

if( S==0 ){
      if( SW5==on ){ SWcountB5++: } else { SWcountB5 = 0: }
      if( SWcount=<6 ){ LED_B0 = ~LED_B0; S = 1; }

    } else if( S==1 ){
      if( SW5==off ){ SWcountB5 = 0: S = 0; }
    }

    if(LED_B0 == on){ GPIO.B0 = ~GPIO.B0; } else { GPIO.B0 = off; }
  }
}
737774ワット発電中さん
2017/03/11(土) 01:05:58.04ID:U6dK89nR
間違えた
static unsigned char n200 = 0;

if( n200++ >= 200 ){
  if(LED_B0 == on){ GPIO.B0 = ~GPIO.B0; } else { GPIO.B0 = off; }
  n200 = 0;
}

× if( SWcount=<6 )
○ if( SWcount<=6 )
738774ワット発電中さん
2017/03/11(土) 02:57:32.27ID:6+nzxtFU
PIC固有の問題はPICスレに
739774ワット発電中さん
2017/03/11(土) 03:14:32.95ID:6+nzxtFU
>>736
関係ない処理の依存性をわざわざ増やさなくても

例えば、点滅の期間を205msにしてとか、キーのサンプリングを12ms間隔に変更してっていう要望が来たらどうするの?
740774ワット発電中さん
2017/03/11(土) 07:42:18.56ID:/sfKzVDm
led1, led2が1になる期間が10msしかなくて、
1になった状態をTMR1割り込みで取り込めないように見えるが
741774ワット発電中さん
2017/03/11(土) 08:36:08.13ID:HvXR2dtZ
フリーランカウンターの使い方を根本的に勉強する。
入力のチャタリング除去は全ピンまとめて独立した処理にしておく。

両方やっても1日で理解できる簡単なこと。
基本的なことだけどwiki的なところに書かれていないから、多くの初心者がここで時間を無駄にするね。
742774ワット発電中さん
2017/03/11(土) 08:41:58.16ID:6+nzxtFU
2つのタイマー割り込みでやる発想自体は何も問題が無いと思う
743774ワット発電中さん
2017/03/11(土) 08:52:39.93ID:HvXR2dtZ
つぶしが利かないけどね。
LED3個それぞれの反転タイミングをスイッチに合わせるとか、
点滅周期を個別に変えるなんて欲が出た瞬間に破たんする。
744774ワット発電中さん
2017/03/11(土) 09:25:22.52ID:6+nzxtFU
どっちかっていうとポーリングの方がつぶしが利かない気がする
PICみたいなおもちゃマイコンならフリーランのポーリングでも良いけど、
大きなシステムになればなるほど無駄なCPUの使用は嫌われる

別にどっちも自由に使えればいいんだけど
>>731 をフリーランにわざわざ変えなきゃいけない理由はない

もしかしたら>>731の目的が割り込み処理の練習かもしれないし
745774ワット発電中さん
2017/03/11(土) 09:29:13.72ID:jAldiWjH
タイマーをわざわざ2個も使う必要ないってことだろ。
746774ワット発電中さん
2017/03/11(土) 09:37:12.52ID:HvXR2dtZ
先読みしすぎだよw
一手段を提示しただけだ。何か気に障った?
747774ワット発電中さん
2017/03/11(土) 09:42:43.08ID:6+nzxtFU
目的がわからないのに、勝手に自分の設計思想を押し付けるのはどうかと思うよ
>>736 といい >>741 といい

目的は >>731 のデバッグなんだから、
上から目線で自分のチープな設計思想を押し付ける前に
>>731 のコードを見てあげれば?
748774ワット発電中さん
2017/03/11(土) 10:03:09.50ID:jAldiWjH
>>747
>>739
749774ワット発電中さん
2017/03/11(土) 10:04:08.92ID:6+nzxtFU
>>731
PIC18313で同じようなコードで試したけど、ちゃんと点滅しますね
LED 1個、ボタン1個 だけですが
750774ワット発電中さん
2017/03/11(土) 14:36:57.53ID:gcr4df9E
>>736
割り込みルーチンでだらだら仕事するんじゃねえって言ってるだろ
751774ワット発電中さん
2017/03/11(土) 14:39:15.67ID:PFGjSBAT
割り込みハンドラではフラグ処理だけしかしちゃいけないという風潮
752774ワット発電中さん
2017/03/11(土) 14:48:00.76ID:QgQce6Rf
>>750
次の割り込みまでに終えるなら構わない。
フラグだけクリアして外へ出ても、外で処理が間に合わないなら意味が無い。
つまり、どっちでもいい。
753774ワット発電中さん
2017/03/11(土) 16:55:48.79ID:bWGfzZsT
フラグなんてバグの種を増やすのはいやだな。
使わなくて済むなら使わない。
754774ワット発電中さん
2017/03/11(土) 18:42:06.30ID:6Qxplbrg
じゃステータスレジスタで。
755774ワット発電中さん
2017/03/11(土) 19:11:52.57ID:6gGpaDQp
ステータスレジスタのフラグビットの事だと思ってたんだけど…
756774ワット発電中さん
2017/03/11(土) 19:15:59.50ID:6+nzxtFU
>>750
これで「だらだら」か
757774ワット発電中さん
2017/03/11(土) 19:21:29.95ID:6+nzxtFU
CPUの動作の9割は割り込み処理
なんていう製品のコードを見たら発狂するかな

10usごと(100000回/秒)に割り込みがかかって、
次の割り込みまでに処理を完了しなくちゃならないような処理とか
当然ハンドラはフルアセンブラ
758774ワット発電中さん
2017/03/11(土) 20:36:05.30ID:U6dK89nR
>>757
10usで割り込むって、めちゃくちゃ頻繁だけど、何の木江のためにそこまで速いのですか?
759774ワット発電中さん
2017/03/11(土) 22:09:09.33ID:6+nzxtFU
とあるデバイスの電源制御です
詳細は勘弁してください

音声処理も96kHzだとほとんど同じ間隔になりますね
192kHzだとさらに半分
760774ワット発電中さん
2017/03/11(土) 22:20:37.72ID:6+nzxtFU
ああ、「帰依」ですか
機器の性能向上のためです
性能低下をなるべく減らす為と言った方が正しいかも知れません
761774ワット発電中さん
2017/03/11(土) 23:59:46.06ID:gfDinNCe
それ、俺ならソフト制御にはしないな
762774ワット発電中さん
2017/03/12(日) 00:09:45.92ID:/4QdkPKY
>>761
DSPだと普通の処理ですよ
763774ワット発電中さん
2017/03/12(日) 00:12:40.21ID:/4QdkPKY
仕様が変わるたびにASICなんて起こせないし
FPGAは値段が高いし
764774ワット発電中さん
2017/03/12(日) 09:21:13.83ID:qdGcTFgG
レーダー追尾により自然値0.058μSv/hをはるかに上回るガンマー線が27万円程度の測定器で否が応でも計測され続ける
ダウンロード&関連動画>>

@YouTube



9:27人工衛星(確実な部分)
ダウンロード&関連動画>>

@YouTube

765774ワット発電中さん
2017/03/16(木) 12:35:46.44ID:s9OOuUs8
実際にマイコンだと、タイマー割込は、どのくらいの割込周期で使いますか?
僕は メインクロック10MHzとかで 1ms ばかりです、
766774ワット発電中さん
2017/03/16(木) 12:50:04.79ID:YujLNe/5
プリスケールの問題をクリアできれば4、5mSが多いかな。
8ビットのカウンタの250、200カウントで1秒になるし、
タスクディスパッチ間隔も手頃だし。
767774ワット発電中さん
2017/03/16(木) 14:14:54.93ID:s9OOuUs8
使い道にも依りますからね。
通信なんかだと、半端な数字も出てきて、結構面倒臭いですよね
768774ワット発電中さん
2017/03/16(木) 17:50:11.98ID:QruAttU2
ただの時間カウントなら1msくらいのなるべくキリが良い値
割り込みを使わない方が最近は多いな

時間カウント以外だと用途によるとしか
769774ワット発電中さん
2017/03/16(木) 17:57:45.00ID:QruAttU2
PICの8bitとかだと割り込みハンドラが共通だしマイコン自体も遅いんで、時間カウント用のタイマー割り込みは使わない
16bitタイマーを使ったフリーランのみ
770774ワット発電中さん
2017/03/16(木) 23:39:54.30ID:7xsF50xZ
最近の人はなんで32.768kHzか知らないんだろうか
771774ワット発電中さん
2017/03/16(木) 23:40:51.97ID:DtT+jOzJ
ザンニチィロンパ?
772774ワット発電中さん
2017/03/16(木) 23:47:15.67ID:5c+F7XPo
イチ
ニィ
ヨン
パァ
インロク
ザンニ
ロゥヨン
イチニッパァ
ニゴロ
ゴイチニ
インマルロゥヨン
ニィマルヨンパァ
ヨンマルクンロク
ハチイチクンニ
インロクザンパァヨン
ザンニチィロンパァ
ロクゴォゴォサンロク
773774ワット発電中さん
2017/03/16(木) 23:48:36.50ID:RU/3r4sl
はぁい
774774ワット発電中さん
2017/03/16(木) 23:57:50.30ID:xc1s9bBH
3.579545MHz
775774ワット発電中さん
2017/03/17(金) 00:02:25.10ID:9sLkpCP4
>>774
カラーのサブキャリアだね。
776774ワット発電中さん
2017/03/17(金) 00:04:03.51ID:joeTz1rc
>>772
それを書き連ねることに何の意味が?
世界人類の平和でも願ってるのか?
777774ワット発電中さん
2017/03/17(金) 00:06:48.30ID:joeTz1rc
>>774
PICでTVゲーム作ったから知ってるー。
最近じゃ32.768kHz程ポピュラーじゃなくなっちゃったけど。
778774ワット発電中さん
2017/03/17(金) 00:51:36.80ID:HQPzQGvP
>3.579545MHz
こんな半端な周波数ってどうやって決めたんだろう。
779774ワット発電中さん
2017/03/17(金) 01:22:01.32ID:fewm1Gor
>>778
http://www.nahitech.com/nahitafu/mame/mame6/timing.html
780774ワット発電中さん
2017/03/17(金) 01:50:46.10ID:C572/izi
>>770
RTCが不要なら32768Hzなんか積まない
781774ワット発電中さん
2017/03/17(金) 02:43:15.15ID:NLYTlfUp
>>779
横だが参考になりもうした
あいがとさげもした
782774ワット発電中さん
2017/03/17(金) 05:59:10.20ID:HQPzQGvP
先達の英知やな。
783774ワット発電中さん
2017/03/17(金) 15:21:24.65ID:jMfuosz8
x455の根拠は?
784774ワット発電中さん
2017/03/17(金) 17:07:15.00ID:sgf98sFB
そういや、昔の真空管式のカラーテレビの回路図を見て感心したのを
思い出した。少ない素子で実に巧妙にできてるわ。
785774ワット発電中さん
2017/03/18(土) 00:38:35.13ID:CWT3T6GJ
>>783
水平周波数の奇数/2倍

走査線ごとに色信号が半周期ずれるようになっていて
,縦縞のようなものが見えるのを防ぐ効果も
ある.ついでに走査線数も 525なので,フレーム間でも
位相が反転して相殺されることになる

と言う事らしい

詳しい人解説してあげて
786774ワット発電中さん
2017/03/18(土) 05:33:32.77ID:2orDfdmF
>>785の通りですがちょっと詳しく。
NTSCカラーシステムは従来のモノクロ放送(受信機)との両立性を第一に考えられています。
これをモノクロ受信機で受けたときに色副搬送波の周波数の輝度信号に対する影響を最小限にするために水平周波数に同期して1ライン毎に位相が反転するように

色副搬送周波数=(水平走査周波数の半分)×奇数(455)

としています。
こうすると輝度信号上に現れる色副搬送波、点々に見える、が上下の2走査線毎で半周期分ずれて視覚的に平均化されて粒状感が軽減される事。
さらに垂直走査期間、フレーム毎に同一走査線の色副搬送波は反転するのでさらに影響が軽減されるのです。

上で何故に455という疑問に。
ひとつは色副搬送波を映像搬送波よりできるだけ高くして影響を少なくしたいという事。
ひとつは複合映像信号としての帯域をモノクロと同じにするためには色副搬送波は無闇に高くは出来ない事。
これらの要求の妥協点が455です。
これは453または457でも良かったのですが、回路設計の点から比較的簡単な素数の積(5×7×13)で455が選ばれたそうです。

このほか色空間の事や音声、同期、さらには残留側波帯という電波形式等々アナログテレビ放送は先達の英知そのものという気がします。
787774ワット発電中さん
2017/03/19(日) 00:19:47.35ID:RykETUj9
そういや昔々大学のテレビ関係の講義でクロスカラーとかドット妨害とか言ってたけど、どっちが色→映でどっちが映→色だったんだか覚えてないや。
いまや化石技術だからどーでもいいけど。
788774ワット発電中さん
2017/03/20(月) 02:24:20.27ID:yasBEYbl
https://goo.gl/MFkghn
これ本当だったら、普通にショックじゃない??
789774ワット発電中さん
2017/03/20(月) 21:39:25.42ID:0VVxa/ZY
>>787
信号の振幅方向と位相方向とを使って、2次元的に情報乗せる技術は現役だぞ?
790774ワット発電中さん
2017/03/21(火) 00:15:02.44ID:KnxD1BIC
>>786
説明ありがとうございます。
NTSCは、まずは白黒放送があって、後にカラー放送が出てきたので、
カラーのフォーマットは、白黒との互換性という点に重きを置いて設計、
大変苦労したと聞いたことがあります。確かに英知の結集ですね。

一方で、非NTSC系のPALやSECAMなどのカラー放送も、同様に考え尽くされた方式なのでしょうか?
791774ワット発電中さん
2017/05/08(月) 02:57:36.81ID:357poIwK
>>757
Windows OSも、割り込みばかりで動いていると聞いたことがあります。
アプリ1個起動中なら、1→1→1→1→.....
さらにアプリ1個起動されたら、1→2→1→2→.....
さらにアプリ1個起動されたら、1→2→3→1→2→3.....
さらにアプリ1個起動されたら、1→2→3→4→1→2→3→4.....

処理がドンドン遅くなっていく
792774ワット発電中さん
2017/05/08(月) 06:24:06.73ID:1MxsPXtl
>>791
タスクマネージャとか見たことないの?
793774ワット発電中さん
2017/05/08(月) 06:50:26.64ID:stG1/0+L
Windows 3.0でもそんな単純じゃない
794774ワット発電中さん
2017/05/08(月) 07:13:52.58ID:1qOltJ9c
>>791
Windowsの割り込み処理率は非常に小さい
アプリは基本的には全てスレッドで処理を行う
795774ワット発電中さん
2017/05/08(月) 08:25:33.73ID:QpZR+wcN
>>794
スレッドの切り替えはタイマー割り込みで実装されているのではなくて?
796774ワット発電中さん
2017/05/08(月) 11:23:44.86ID:1qOltJ9c
>>795
切り替え処理のトリガーは割り込みだけど、アプリの処理のほとんどはスレッド

>>757 はCPUの使用率の9割が割り込み処理
全然違う話
797774ワット発電中さん
2017/05/10(水) 14:05:27.95ID:6RdOD4bv
割り込みとOSの話を「実感」したかったら、これ

12ステップで作る組込みOS自作入門
https://www.amazon.co.jp/dp/4877832394
798774ワット発電中さん
2017/05/10(水) 15:02:02.98ID:0jITcltB
setjmp、longjmp のアイディアだけいただいた。
799774ワット発電中さん
2017/05/11(木) 14:46:56.07ID:9OzaSM5z
低機能の8ビットCPUは、
「ハードウェア(タイマ)割込み、およびソフトウェア割込みでスタック領域を切り替える」
で十分だと思う。
フルアセンブラになるけど、省メモリで高速の並列処理の切り替えが可能になる。
800774ワット発電中さん
2017/05/11(木) 20:00:54.92ID:F/smyqvz
>>799
機能の数だけマイコン使えば良い。
LSI にも、シーケンサーとしてマイコン入ってる物も多い。
801774ワット発電中さん
2017/05/11(木) 21:25:31.95ID:2Sf3xnYm
>>800
どーだろうね。
ソフトで工夫した方が手軽なんじゃないかな。特に趣味なんかの場合は。
あとはロマン。
802774ワット発電中さん
2017/05/11(木) 22:03:35.34ID:MlcD/Tp/
>>799
OSレスのほうが省メモリで高速
低機能8bitでプリエンプティブマルチスレッドとか完全な趣味の世界
803774ワット発電中さん
2017/05/11(木) 22:13:37.90ID:MlcD/Tp/
わざわざ評価工数を増やす
わざわざバグを増やす
わざわざ必要なリソースを増やす

仕事であればアホと言われる
804774ワット発電中さん
2017/05/11(木) 22:17:53.46ID:MlcD/Tp/
規模が大きくなってくると逆にOSは必須になる
多くの機能が必要で信頼性も非常に重要となる
どちらにしろOSを自作とか言い出すとアホと言われる
805774ワット発電中さん
2017/05/11(木) 22:19:26.63ID:MlcD/Tp/
車輪の再開発なんかして遊んでないでさっさと仕事しろって感じ
806774ワット発電中さん
2017/05/12(金) 07:47:40.53ID:Je9m1REm
技術革新を起こす人と、日々の業務をこなす人とでは志向が違ってきますね。
先行するものの学習方法も、出来上がったものをそのまま受け入れる学ぶ方法もあれば、出来上がる過程を疑似的に体験する方法もあります。
前者の究極は丸暗記や技術の口移し、後者が深くなれば車輪の再発明。
ある人が常にどれかの立場ということもなくて、一人の中にいろいろな志向や学習方法が共存しています。

合理性を組織全体に徹底して志向や方法を揃えてしまうと、いっときは勢いを持てても長期的には組織が弱体化するんじゃないですかね。
807774ワット発電中さん
2017/05/12(金) 08:12:16.27ID:I2UzcxA+
製品に入れるとか他人に強要するとかそういうことが無ければ好きにすればいい

>>799の過去の発言がどちらかというと強要になっているので
808774ワット発電中さん
2017/05/12(金) 08:56:37.89ID:Je9m1REm
>>807
おー。わかります。
極論を諫める反論もついつい極論に傾きがちなパラドクス。
望ましいバランスをとった反論をすることはなかなか難しいですね。
809774ワット発電中さん
2017/05/12(金) 13:36:40.28ID:0QiNq0LD
>>807
掲示板で強要? そんな事ができるわけが無いし、見た事も聞いた事も無い(笑)
ずいぶん前にAVRtiny2313用としてここに書いたリストだけど
こんなものでも場合によっては役に立つ、デバッグが簡単になると言いたいだけです。
−−−−−
timer0割込み切り替え:Zレジスタ保存 合計30クロック 実測値約1.3uS at 20MHz
4         (ハード受付、要求フラグセットなど)
4         (割込み受付、内部処理)
1 cli        割込み禁止
2 push zl     現在のタスクのスタックにZレジスタを保存
2 push zh
1 in   zl,sreg       〃      フラグレジスタを保存
2 push zl
1 mov  zl,sv_spl 現在のタスクのSPをsv_splレジスタに保存し、
1 in   sv_spl,spl 保存していたSPを次に実行するタスクのSPと入れ替え
1 out  spl,zl
2 pop  zl     次に実行するタスクのスタックのフラグレジスタと入れ替え
1 out  sreg,zl
2 pop  zh           〃        Zレジスタと入れ替え
2 pop  zl
4 reti        (次に実行するタスクのスタックから実行再開番地を取り出して実行、内部処理)
−−−−−
私は心が広いので、こんな物が役に立つかという意見も受け入れちゃうけど(笑)
810774ワット発電中さん
2017/05/12(金) 13:43:52.22ID:yXVeoV+R
>>806
もうひとつ条件を付け加えるなら
いっとき勢い持った組織に自分の組織が潰されなければね、でしょうか。
811774ワット発電中さん
2017/05/12(金) 15:28:04.50ID:dMbBuOmi
>>809
強要は言い過ぎた
勧めるべきじゃない情況(ほとんどがそう)だろうが関係なく勧める
初心者が真に受けると危険
812774ワット発電中さん
2017/05/12(金) 16:27:14.85ID:0QiNq0LD
>>811
「初心者が真に受けると危険」って、私のプログラムは新興宗教か?(笑)、
初心者向けで無いことは認める。しかしここは初心者限定ではないでしょ?
それにたとえ初心者でもチャレンジする事は大事だし、
今理解できなくても記憶の片隅にでも残れば、将来役に立つことがあるかもしれない。
たとえばスタックを入れ替えるとどうなる?
割込み処理ルーチンの先頭に割込み禁止命令がある意味は?
など。

CPUの種類によって個々の命令は変わってくるし、リストを細かく書いてもしょうがないから、
準備部分のリスト(スタック領域のプリセットやタイマ起動など)は省略したけど分る人は分るよね?
(つうか分らない人はどんなに詳しく説明しても分らない?)
ほとんどのAVRはこれかこの応用でいける。PIC24でやったことは無いけど多分適用できると思う。

ついついマジメぶってしょうも無い事をエラそうに書いてしまった、
イラッとした皆々様、申訳ありません、これにて本日の打ち止めぇ〜、チョンチョン
813774ワット発電中さん
2017/05/12(金) 16:42:01.35ID:dMbBuOmi
悩み事相談じゃなくて押し売り
814774ワット発電中さん
2017/05/27(土) 07:19:34.00ID:MSkgftZY
割り込み処理で割り込み禁止にする意味がわかりません
わかる人いますか?
815774ワット発電中さん
2017/05/27(土) 07:51:44.63ID:rvSMj58I
多重割り込み
割り込み以外の処理との共通化

など
816774ワット発電中さん
2017/05/27(土) 17:36:55.57ID:Un1uZemt
>>814
多重割り込みはやってはいけない訳ではなく、本当に必要だったらそれなりの対策をして有効にする。
817774ワット発電中さん
2017/05/27(土) 18:07:29.96ID:/al1Bsd0
話題のターゲットになるデバイス指定すべきだな。
マルチレベルの割り込みが使えるものなら、
割り込み禁止しないと上位レベル割り込みが発生するものもあるしな。
818774ワット発電中さん
2017/05/28(日) 00:34:37.47ID:AeGNH8WK
>>816
誰がやってはいけないって????
819774ワット発電中さん
2017/05/28(日) 00:42:51.07ID:AeGNH8WK
>>817
逆が多いかと
ISRコール時には割り込み禁止になっていて、禁止を解除することで多重割り込みが有効になる

そうじゃないと、ISRの先頭から割り込み禁止するまでの期間は割り込みが有効になってしまう

そういうマイコンが本当に存在する?
820774ワット発電中さん
2017/05/28(日) 01:16:02.25ID:OXjLTjNK
>>819
マルチレベルの割り込みって書いてるだろ。
明示的に割り込み禁止しなければ下位割り込み中でも上位割り込みは実行される。
いくらでも存在するわ。
821774ワット発電中さん
2017/05/28(日) 01:17:25.24ID:AeGNH8WK
たとえば?
822774ワット発電中さん
2017/05/28(日) 01:34:25.32ID:OXjLTjNK
RL78とかATxmegaなんて知らないのか?
823774ワット発電中さん
2017/05/28(日) 08:02:39.36ID:YT7XbdLF
RL78のユーザーズマニュアル
「割り込み要求が受け付けられた時点で,割り込み要求は受け付け禁止状態(IE = 0)になります。
したがって,多重割り込みを許可するには,割り込み処理中にEI命令によってIEフラグをセット(1)して,
割り込み許可状態にする必要があります。」
824774ワット発電中さん
2017/05/28(日) 08:39:32.36ID:YT7XbdLF
>>819 に戻る
825774ワット発電中さん
2017/05/28(日) 11:33:43.04ID:xxEpCzdl
割り込みレベルがあるMPUなら一般的には>>820が正しいな。
RL78とかは単純処理向けだからなあ。OSレスが前提だろう。
826774ワット発電中さん
2017/05/28(日) 11:34:54.16ID:zWGCoQqI
たとえば?
827774ワット発電中さん
2017/05/28(日) 11:40:07.86ID:zWGCoQqI
「たとえば?」で出てきた一個目がいきなり違うっていう
828774ワット発電中さん
2017/05/28(日) 13:25:12.27ID:rdeAHBdR
一時的にとは言え下位割り込みが上位割り込みを必ずマスクするのはちょっと…
829774ワット発電中さん
2017/05/28(日) 15:30:27.60ID:44rb/B25
割り込み確定からISRの先頭までは、どんなマイコンでも他の割り込み処理が割り込めないけど
830774ワット発電中さん
2017/05/28(日) 16:23:33.94ID:44rb/B25
AVRもISRの先頭では割り込み禁止状態
https://www.clarestudio.org/elec/avr/mcu-interrupt.html

ルネサスのドキュメントにも
「ただし一般に、割り込み要求を受け付けるとDI(Disable Interrupt)状態となるため、ネスティングを許可するにはEI(Enable Interrupt)命令を実行する必要があります。」

そうじゃない例は?
そうじゃないのが一般的だという根拠は?
831774ワット発電中さん
2017/05/28(日) 16:28:56.42ID:44rb/B25
MIPSもISR先頭で特定のレジスタを使うのが当たり前だから、どの実装でも割り込みが禁止になっているはず
832774ワット発電中さん
2017/05/28(日) 16:38:20.23ID:44rb/B25
ARMも割り込み直後は割り込み禁止
833774ワット発電中さん
2017/05/28(日) 16:45:26.59ID:44rb/B25
まあ別にISRの初期状態がどうであれ、>>814 の回答は変わらないけど
834774ワット発電中さん
2017/05/28(日) 16:49:29.02ID:xxEpCzdl
話がごちゃごちゃになってるんじゃないか。
1)割り込み発生〜ISR先頭まで
2)ISR先頭からISR内プログラム実行過程

1)は当然割込禁止だろう。それを言ってるのか?
ただ、2)以降EI実行するまでずっと割込禁止かどうかはMPUによるだろう。
例えばルネサスSHは受け付けたはずだが(割込マスクレベル内で)
835774ワット発電中さん
2017/05/28(日) 17:00:57.61ID:Xo8Cqo65
>>814
>>799 に「ソフトウェア割込み」と書いてあるから
>>809 のタイマ割込み処理の先頭の割込み禁止命令はソフトウェア割込み用で
tiny2313のプログラマが任意のタイミングでコールしてタスクを切り替える、ということだと思う
だからタイマ割込みではCLI命令の次から実行すれば良いはずだけど
この割込み処理の作者はラベルを書いていないのでその辺が不明確

いずれにしろ割込み許可命令では無くて割込み禁止命令を実行しているので
多重割込み処理は無関係では?
836774ワット発電中さん
2017/05/28(日) 17:03:24.48ID:Xo8Cqo65
(追加)
もちろんタイマ割込みの先頭で割込み禁止命令を実行しても
冗長になるだけで実害は無い
837774ワット発電中さん
2017/05/29(月) 00:08:25.77ID:PMJwdlad
>>834
2) の話
そのままで割り込みが有効なのが一般的か、そうじゃないのが一般的か
838774ワット発電中さん
2017/05/29(月) 00:15:15.87ID:PMJwdlad
>>814は単独の質問だと思ったのだけと、>>809に対してだったのかな?

それだったらコメントの通り、ISR内で再度割り込みがかからないように(多重割り込みが発生しないように)禁止してるだけかと
839774ワット発電中さん
2017/06/03(土) 19:26:22.67ID:lVV3YHrK
久しぶりにマイコンを使用した開発をしてみようと思うのですが10年以上ブランクが空いているので浦島太郎状態でハードウェアの選定をから悩んでいます
今作ろうとしているのはPCと連携する機器です(当然安定性は重要です)。PC側はUART×2でGPIO(ひょっとしたらADCも使うかも)を多用することになりそうです
UARTを使う都合上システムのクロックはそれに合わせた物になる可能性があります
手持ちのE1を使うなら数十ピン程度のRL78あたりやRX200になりそう(どちらも使用できる電圧範囲が広い)ですが開発やデバッグの効率なども考慮して
よりよいハードウェア&開発支援ソフトウェアはあるでしょうか?

また最近はArduinoやmbed、がじぇっとるねさすなどの高度に抽象化されて昔より容易にソフトウェアを開発できるフレームワークもあるようですが
初心者に優しい一方で凝った物を作りたい場合やトラブった場合に抽象化を維持したままどこまで改造・デバッグ出来るのか不安があります

一応自分の作った物
EZ-USB(i8051 core) PCに繋いで使うHID機器を製作。英語資料とLEDによるデバッグで地獄を見た。一応実用に耐えられるレベルにはなった
ATmega48 LEDをPWMで動的に制御する機器を製作。マイコン部は概ね問題なかったけど電源系と光学系の完成度を上げられずに棚上げ
さらに昔だとバイトで純正の開発環境で78K0Sを使っていたことがあります。言語は上記を含めアセンブラでした。Cなどでの開発経験はありません
数年前に別件でRenesas E1とBlueBoad-RX62N(英語のマニュアルと格闘しなくて良いので)を買ってはいますが放置しています
840774ワット発電中さん
2017/06/03(土) 19:43:57.27ID:ppHG5uKt
通信+簡単な処理ならRL78で性能的には十分
RXは重い処理が必要な場合
どちらもオススメ

UARTならソフトのドライバもハードも簡単だと思う
それ以外の部分はどんな感じ?
841774ワット発電中さん
2017/06/03(土) 20:05:30.94ID:yvEQNOhW
Arduinoは物足りなくなったら抽象化のゴム外して生のATMELと組んず解れつできるよ
842774ワット発電中さん
2017/06/03(土) 20:07:03.95ID:Vyc2OosF
>>841
消えろ
843774ワット発電中さん
2017/06/03(土) 20:10:03.04ID:ppHG5uKt
62Nで遊んでみようってレベルならArduinoとかは選択肢に入らないような気がする
844774ワット発電中さん
2017/06/03(土) 20:11:53.26ID:ppHG5uKt
信頼性もサポートも、ATMELよりはルネサスの方が良いと思う
845774ワット発電中さん
2017/06/03(土) 20:14:15.02ID:ppHG5uKt
>>842
そんなに変なことは言ってないような
846774ワット発電中さん
2017/06/03(土) 20:23:33.65ID:Vyc2OosF
>>845
特に面白くもないのにいちいち下ネタに走る奴何なのって思わん?
普通に書けやって思う
847774ワット発電中さん
2017/06/03(土) 20:31:51.85ID:ppHG5uKt
下ネタ?
おれには下ネタには感じないが
小学生か?
848774ワット発電中さん
2017/06/03(土) 20:32:36.57ID:ppHG5uKt
あ、私女だけど
849839
2017/06/03(土) 21:05:24.58ID:lVV3YHrK
レスありがとうございます
上で書いていませんでしたが目的は既存機器の改修(機能を追加したい)なのでMCUの先は既存機器のMCU?だったりスイッチだったりします
イメージとしてはこんな感じでしょうか
       既存機器のMCU
           │
PC─<UART>─MCU─<GPIO>─スイッチなど
           └──<ADC>─ボリュームなど

開発言語も効率は悪くともベタで手堅いアセンブラか、不慣れでも抽象化でき大規模化にも対応しやすいC使うか、さらに抽象化できる最近流行の
フレームワークを使うか悩ましいです
開発にあたってアセンブラorコンパイラ、リンカとデバッガ(E1を使うなら純正一択か?)との連携を確立させる必要がありますが、Renesas系で
非純正の開発ツールを使う場合の情報はあまり多くなくサポートも甘いように感じます。RX62Nが放置されている理由の一つはこれで
gcc系の開発ツールと純正デバッガを連携させる方法がググっても見つけられなかったです
今回の件に限ればCS+評価版で足りそうな気はしますが(i8051やATmegaの経験的には足りる)ADCを使いだしても足りるかは判りません

>>840
RL78とRX200のスペックシートを見た感じではRX200はSCIが3本以上あるのが魅力的ですね。本来の用途に2本使ってもデバッグ用に残っています
RL78だと基本的に2本までっぽいのでデバッグ用のUARTはソフトウェアで実装するか別の手段を考える必要がありそうです
ただしRX200だとRL78以上に既成ボードの選択肢が狭い印象があります

>>841
それなら最初からアセンブラやCで書いた方が余計な回り道をしないだけ早く完成しますよね・・・
850774ワット発電中さん
2017/06/03(土) 21:49:55.57ID:Ro9drXKO
>>849
なんでわざわざ非純正のツールを使う必要があるんだ?
851774ワット発電中さん
2017/06/03(土) 22:06:26.61ID:Hiwlgosq
純正の開発環境でそのままでアセンブラとCの混合開発は出来るよ

でも今時アセンブラでの開発は無いでしょ
やるとしても、ごくごく一部だけ

RL78はピンが多いのならUARTは3chありますよ
852774ワット発電中さん
2017/06/03(土) 22:08:55.96ID:Hiwlgosq
>>849 だけ見るとRL78でもオーバースペックに見えちゃったりするんですが、GPIOで高速通信をしたりするんですか?
853774ワット発電中さん
2017/06/03(土) 23:05:10.59ID:wdmKejFj
UARTx3って希望だとRL78がオーバースペックとは思えないがな。
ピン数多いチップでも問題にならんと言うならアンダースペックとまでも言わないが。
854839
2017/06/03(土) 23:35:22.20ID:lVV3YHrK
>>850
純正評価版
 野良情報が少ない。Renesasの技術サポートも得られないためトラブった時にお手上げになる可能性がある
 今回の件はともかく先々(RX600とか)のことを考えると容量制限に引っかかる可能性も低くない
オープンソース系
 野良情報が多い。コーディングやツールの使い方に関する情報は豊富。容量制限などは存在しない
 ただし純正デバッガと連携が課題
一長一短ではあります

>>851-852
44ピンとかだとRL78でもSCIが3本あるようですね。処理能力的にはRL78で足りると思います
スイッチやボリュームの数が増えて時分割で入力装置を読み出すようになったとしてもいけるはず

>>853
既存機器への組み込みとはいえ今回は比較的余裕があるので実装面積の拡大はある程度許容できます
855774ワット発電中さん
2017/06/03(土) 23:41:49.33ID:wdmKejFj
UARTでリモートデバッグしようとしてたり、時分割やろうとしたり、
かなりご年配で泥臭い仕事をこなしてきた方とお見受けします。
RL78はZ80ライクで馴染みやすいのかも。
856774ワット発電中さん
2017/06/03(土) 23:59:15.30ID:Ro9drXKO
>>854
ちょっといろいろと考え過ぎだと思うがなあ。
オープンソースでもサポートないのは同じだし、環境作るだけで力尽きてしまうぞ。
まだ純正ツール評価版のほうが、かふぇルネで回答がもらえる可能性がありそう。

容量も、リンカのジャンプテーブルの出力オプションで、ちょっと面倒だが解決できる。
評価版ユーザーは、これで頑張れといわんばかり。
でもそんなに容量いるの?
857774ワット発電中さん
2017/06/04(日) 00:01:35.21ID:/6oD4ods
>>854
ツール自体は特にサポートが無くても問題があるような感じはしないけど
インストールも簡単だし、操作方法も普通

容量制限は、無料のを使うなら付いて回るとは思うけど...
ていうか、無料のを使う発想が無かった

コードサイズ64KBに
UART 3系統、
I2C 2系統、
リモコン受信、
キースキャン、
ブートローダー、
その他いろいろな低速の制御
を入れて量産してるけど

>>855
UARTでデバッグは年配なのか...
若い人はリアルタイム動作が必要なマイコンのデバッグはどうやるの?
858774ワット発電中さん
2017/06/04(日) 00:20:43.03ID:t6Hft6Rd
e2studioとRXGCCでエエやん、無料だし制限ないし
E1でデバッグも出来るし実行中変数モニタも出来るし
問題があるとすれば、GCCでのサンプルが少ない事やね
62Nは昔の雑誌の付録?
雑談の付録だったらE1のコネクタつけて直ぐに試せる

アセンブラやってるレベルならLEDチカチカまではすぐじゃないのかな
859774ワット発電中さん
2017/06/04(日) 00:21:44.14ID:XA+xQZ7z
今どきUARTでのリモートデバッグなんて、Arduino使ってるアマチュアくらいだと思ってたんですが、
まだまだ仕事でも使われてるんですかね?

正直、>>839さんの用途にわざわざそんな環境作り込む必要性は感じなかったので、
我流が染みついた職人級の人かと勝手に想像しただけです。
私もそれ系なんですけど、ICE安いですからリモートデバッグなんてこの10年近くやってないもので。
860774ワット発電中さん
2017/06/04(日) 03:30:12.93ID:SZEVb7Sy
話の途中ですが、質問教えてください。

リモートデバッグと言う言葉、良く聞くのですが、どのようなことを言うのでしょうか?
デバッグはバグを見つけて退治することだと思います。
これをリモートで行うというのがわかりません。
また、他方でリモートでないデバッグというのもあるのでしょうか?
861774ワット発電中さん
2017/06/04(日) 05:04:18.08ID:XA+xQZ7z
私の定義や解釈が他の方と異なっているかもしれませんが、私の言う「リモートデバッグ」とは、
プログラムタスクの一つにUARTなどの通信によってCPUのステータスやプログラムカウンタ、
SRAMの内容等を読み書きする機能を埋め込みます。
所詮プログラムですから、それ自体をまずデバッグしなければなりませんし、
CPUパワーも、メモリも、UARTポートも食いつぶします。
ですがICE等が非常に高価であった時代に安上がりで、工夫次第でなかなか使えるものでした。
イメージはArudinoのシリアルモニタそのもので、事実この頃から「シリアルモニタ」と呼ぶ人もいました。

これと対になるのがICEやJTAGなどを使用した一般的に言う「デバッガ」ですね。
862774ワット発電中さん
2017/06/04(日) 06:20:25.13ID:Lq+xT5KB
>>861
「Arudinoのシリアルモニタそのもの」はちょっとというか
全然違うのでは?
863774ワット発電中さん
2017/06/04(日) 06:48:32.19ID:XA+xQZ7z
>>862
私は同じと言って差し支えないと思います。
デバイス側でPCからの要求を受けて内部を操作したり情報を返したりする。
あるいはプログラムに従って情報を自動的に垂れ流す。
Arduinoでも普通に行われていることではないですか?
864839
2017/06/04(日) 07:26:50.95ID:uq958gt2
デバッガのメモリダンプやウォッチリストによる監視とシリアルコンソールの外付けによる監視はお互いに補完する関係にあり
どちらかで代替できる物ではないと思うのですが、最近はデバッガが吸い上げた情報をプログラマブルに整形して可視化できるような
ツールがあるのだろうか・・・

>>856
なるほど、リンク容量の制限はお茶を濁す方法があるのですね
RL78はともかくRXだと書くコード自体は少なくても既成のライブラリを使ったり、計算用のテーブルやフォントなどをリンクしたら容量制限の突破は
十分にあり得ると見積もっていました

>>857
自分で書いたプログラムだけだったら64KBもあればほぼ足りると思います

>>858
>e2studio
そんな物があったのか。GNUベースのツールが使えるのであればRXもRL78もgcc/as/ldで開発できますよね
RX62Nは秋月で売っている奴です。確かNICとLCDを使った物を作るつもりだったのですが開発環境の構築とネットワーク関係の実装に頭を抱えて
棚上げになっています
LEDをチカチカくらいならともかくCとの連携は全く判らないのでCで開発するなら勉強しないといけないところです
865774ワット発電中さん
2017/06/04(日) 09:12:07.49ID:/6oD4ods
情報の後出しが多くて
フォントとか計算用テーブルとか既成のライブラリとか...

仕事なのか趣味なのか
仕事であれば量産品なのかそうじゃないのが

GPIOの本数や速度は?
UARTの接続先、PCとデバッグ用ともう一個は何?

アセンブラでのコーディングを気にする理由は
どう見てもオーバースペックなRXを気にする理由は

趣味でいろんな可能性を考えたいからいろんな後付け情報が出てくるんだとは思うけど
866774ワット発電中さん
2017/06/04(日) 09:38:18.79ID:L/2LcMda
UARTでデバッグってよくやったな。
デバッグタスクを1本起こしておいて、タスク単位で起動・停止したり、レジスタの値を見たり、
任意のイベント送れるようにして、タスクの挙動確認したり。
EQUでシンボル登録して、byte VAR_X とか、dis GET_Xとかで逆アセンブルできる
ようにしたり、CPUのブレークポイントやシングルステップ機能活用で、
ブレークとか実行トレースモドキとか、いろいろ。
867774ワット発電中さん
2017/06/04(日) 09:45:50.73ID:/6oD4ods
今もやるでしょ?
機能や重要度は下がってるだろうけど
868774ワット発電中さん
2017/06/04(日) 10:39:14.19ID:Yhl1hgkB
JTAGデバッグを初めて見た時革命が起こったかと思ったよ。w
869774ワット発電中さん
2017/06/04(日) 12:16:14.64ID:O6SBPBjS
RX 用の GCC なんてあるの?と思って調べてみたら、
好き者が無理して使ってるような記事しか出てこないなあ。
Linux で開発できるようになると嬉しいんだけど。
870774ワット発電中さん
2017/06/04(日) 12:48:14.28ID:IhhBXec6
なんで自分で作らずに口を開けて待ってるんだかwww
871774ワット発電中さん
2017/06/04(日) 15:24:00.76ID:ZrdOYAYO
>>866
<CPU側にデバッグ用ハードを内蔵させておいて
クロックと双方向データ線の半2重同期式通信でデバッグ情報を外部とやり取りする>
というのは、昔、UART+リモートデバッガでやっていた頃と基本的に原理は同じだと思う。
(AVRのPDIの話ね)
872774ワット発電中さん
2017/06/04(日) 16:49:41.47ID:XA+xQZ7z
AVRの純正デバッガもルネサスがエミュレータと呼ぶものも
安価なのに非常に強力で有難いですね。

結局どうやってマイコン内部の情報とやり取りするかですから、
専用インターフェースだろうがリモートデバッガだろうが基本的に同じことだと思います。

自作のリモートデバッガは自分でどうにでもカスタムできるので、
その時限り、そのターゲット限りの特殊な動作を入れて
デバッグの手間を省けたりするのは良かったと思います。
873774ワット発電中さん
2017/06/04(日) 18:17:45.09ID:ULcBNZ4j
デバッガの機能とデバッグ用コードは基本的には用途は別でしょ

printfデバッグ
デバッグの為に作るコマンドラインによる操作、制御、パラメータ設定、値取得
874774ワット発電中さん
2017/06/04(日) 18:48:56.80ID:XA+xQZ7z
「デバッグ」と言う用途は変わらないと私は思いますが、
機能によって区別するしないは個人の自由だとも思います。
875774ワット発電中さん
2017/06/04(日) 19:02:24.38ID:/6oD4ods
同じ事にしたい理由がわからない
同じ事にするとなにか良いことがある?

デバッガは汎用的なことしか出来ない
>>873の機能はコードを書かないと

デバッグなんて基本的には皆同じ
電子回路なんて基本的には皆同じ
人生なんて基本的には皆同じ
こんな主張がなにか役立つ?
876839
2017/06/04(日) 21:18:32.67ID:uq958gt2
確かにRXはオーバースペックだと思いますが、マイコンボードの値段を考えるとあまり差がなさそうですね
秋月のAE-RX210が2千円程度。RL78のボードはがじぇるねやマルツで売っているけど同程度
消費電力や基板サイズの制約はないので大は小を兼ねそうな気がしますけど何か落とし穴があったりするのかな・・・

>>865
判りにくくなってしまっていてすみません

>フォントとか計算用テーブルとか既成のライブラリとか...
同じ系列のMCUなのにプロジェクトのサイズにとって開発ツールを変更するようなことは出来れば避けたいです

>仕事なのか趣味なのか
現状は趣味です

>GPIOの本数や速度は?
ひとまず最小構成でGPIOは〜20程度、ADCは0〜2程度を考えています

>UARTの接続先、PCとデバッグ用ともう一個は何?
送信×2、受信×1。本来の目的で送信と受信の1セットが必要です。残りの送信はデバッグ用です。UARTを使わずにプログラムからデバッグ用の情報を
転送できてPC側で任意のフォーマットで表示できる方法があるならデバッグ用の1本は不要です

>アセンブラでのコーディングを気にする理由は
Cは不慣れで全く読み書き出来ないと言うほどではないにしろアセンブラと連携してゼロから開発出来るほどの知識はありません
CでコンパイルしたコードをMCU上で実行するには所定の初期化処理が必要らしいとは聴きますがそれを自分で書くことも出来ません
アセンブラによる開発の可能性を否定していないのはこのためです
877774ワット発電中さん
2017/06/04(日) 21:54:28.21ID:t6Hft6Rd
めんどくさい奴だな
ほんなもんこんな所でウダウダやってる間にイロイロ試せるだろ
こだわるのは能力あるヤツがやること
能力ないヤツは試して失敗してまた試しての繰り返しで能力付けるんだよ
質問するなら試して失敗してからにしな
878774ワット発電中さん
2017/06/04(日) 22:01:21.67ID:/6oD4ods
>>876
趣味ならオーバースペックは全く問題ないと思うのでRXでもRL78でもやりたい方で

UARTに関しては、
送信2ch, 受信1ch であれば、RL78/G13, RL78/G14, RXシリーズならどれでも可能です。

RL78なら一応こんなのもあります。
http://akizukidenshi.com/catalog/g/gM-08844/

アセンブラに関してですが、
アセンブラで開発する時代は終わり
RL78もRXもC言語だけで開発出来ます。
開発速度は圧倒的にC言語の方が速いですし、
気を使うこともアセンブラに対して非常に少ないです。
レジスタの選択も起動時の初期化処理も
割り込み処理や関数処理のprologue, epilogue処理も
コンパイラが勝手に作ってくれます。
コンパイラの能力も上がり、
アセンブラによるフルチューンコーディングとのパフォーマンスの差もずっと縮まりました。

将来マイコンが変わったとしてもC言語は使えますし、
これを機会にアセンブラを一切忘れたフルC言語によるコーディングをお勧めします。
879774ワット発電中さん
2017/06/04(日) 22:45:34.78ID:PN+Juf4i
>アセンブラによるフルチューンコーディングとのパフォーマンスの差もずっと縮まりました。

昔から、Cしか出来ない奴がよく言ってる事だなwww
880774ワット発電中さん
2017/06/04(日) 23:05:23.13ID:/6oD4ods
おっ久々の℃玄人登場
8bit PICのアセンブラしか出来ない℃玄人
881774ワット発電中さん
2017/06/04(日) 23:36:05.95ID:O6SBPBjS
>>870
それが目的ではないから。
882774ワット発電中さん
2017/06/04(日) 23:43:55.49ID:TW6dWwNG
>>879
さすが℃玄人
全部アセンブラで書いとけよもう
883774ワット発電中さん
2017/06/04(日) 23:57:55.79ID:me4vXEip
「悔しそうだなwww」待ちテンパイ
884839
2017/06/05(月) 00:17:18.45ID:U3mdQVHS
CS+本体は登録しないとダウンロードできないようなので後回しにして、RX210やCS+、CC-RX関係のドキュメントを落としたので読んでみます

>>878
そのRL78が張り付いている変換基板は確認していますがDIPピッチに変換されているだけでパッケージ単品を買って自分で配線するのと
大差ないような気がします。Xtalとかは別途用意して配線する必要がありますし

>将来マイコンが変わったとしてもC言語は使えます
自分もその方向で準備するつもりですが、これを前提とするならC言語とマイコンや開発環境固有の部分を分離した方が応用が利きませんか?
>レジスタの選択も起動時の初期化処理も
>割り込み処理
この辺はマイコンや開発環境固有の部分でC言語の規格にはない部分ですよね

あとコンパイラやリンカ、アセンブラあたりの知識がないと>>856のリンカオプション云々を理解出来ないと思うのですが・・・現時点では
そういうことが出来るらしいという点以外は理解出来ていません
885774ワット発電中さん
2017/06/05(月) 02:58:20.41ID:J/TVmMg4
キャンセル
886774ワット発電中さん
2017/06/05(月) 06:40:18.02ID:1D5/pcLZ
>>884
悩み事を相談したいならポイントを明確に
887774ワット発電中さん
2017/06/05(月) 07:37:58.48ID:0kOGbwH7
うだうだ言ってる間に手動かした方が早いのにな。
888888
2017/06/05(月) 09:13:36.84ID:mN9ohGxL
888
889774ワット発電中さん
2017/06/05(月) 09:51:47.63ID:I/eYcHF/
http://www.fujisawa-smileshika.jp/entry/
890774ワット発電中さん
2017/06/05(月) 23:17:35.15ID:ZxRSBdCV
>>884
CS+は登録しなくてもインストール、無償版範囲で使用できる。
UART程度なら、内蔵オシレータで32MHzで動かせる。
FPハンダ付できる様なので、変換基板に、外付け部品は、RESETに10kPU、REGCに1uFで十分。
891774ワット発電中さん
2017/06/06(火) 08:11:48.79ID:6AagniZf
>>アセンブラによるフルチューンコーディングとのパフォーマンスの差もずっと縮まりました

まぁな。CPU内部のパイプラインの挙動まで考えて手作業で最適化するのは
あまり現実的ではないし、1クロックを必死で削ろうなんて努力している間に
製品化で先を越されてしまったりして。
892774ワット発電中さん
2017/06/06(火) 18:28:17.09ID:8IaFeuvA
短期間で人件費抑えて開発してすぐ販売のほうがいいよね
893774ワット発電中さん
2017/06/07(水) 20:28:43.45ID:KKheIPnc
ちょうどルネサスの話が出ているところだけどルネサスのサイトでこんなページを見つけてしまった
ENGINEER SCHOOL | ルネサス エレクトロニクス
https://www.renesas.com/ja-jp/support/technical-resources/engineer-school.html
今や半導体屋がこんなページを作らないといけないほど技術者不足なの?
マイコン活用基礎あたりまでは電子工作と無縁の人向けの内容だよね
工業高専や工学系を専攻していた大卒ならこのくらい理解していて
当然の内容じゃないのか
高卒だって趣味で電子工作をやっている人なら基本的に知っている内容だろうし
マイコンの使用経験があればこのくらい当然理解しているはずじゃあ
割り込みとかタイマとかを理解出来ていないとLチカすら出来ないぞ
894774ワット発電中さん
2017/06/08(木) 12:49:49.65ID:IWYs8Lk2
>>893
今はPCソフト系からマイコン制御ボード系に来る人が多くて、
彼らはハード(回路)に詳しくないからでは?
PLC(シーケンサ)系から来る人はまだマシだと思う。
895774ワット発電中さん
2017/06/08(木) 21:48:15.80ID:B0I6KDVi
>>894
その背景はなんだろ。PCアプリ屋ってVisualStudioにどっぷり浸かっているMSのしもべだよね
リッチなライブラリ群が整備されていてマシンリソースは湯水のように使えることが前提の連中だよな
最近の組み込み関係はそういう人でも許容できるくらいに余裕が出来たのか?
連中にマイコンボードと開発環境を与えてLチカを作ってみろと言っても一ヶ月あっても出来上がるか
怪しい気がw
896774ワット発電中さん
2017/06/08(木) 21:57:34.54ID:quJ+OcRZ
ご自分が苦労なさったからといって他人も同じと決めてかからない方がよろしいかと存じます。
897774ワット発電中さん
2017/06/09(金) 21:50:59.06ID:5iWks2Ma
>>895
チープなマイコンのプログラムしか作ったことが無い人が
業務でPCのプログラムを作るよりはマシだと思う
898774ワット発電中さん
2017/06/09(金) 22:26:12.22ID:zuevROS6
>>897
その心は?一般的に難易度は肥大化させるより、高密度化する方が高いでしょ
組み込み屋の方がコードの品質に対する意識は高いだろうし
899774ワット発電中さん
2017/06/09(金) 22:32:00.06ID:blnpTomF
>>898
もうメモリー容量を気にしてとか
そういう時代じゃない、というかそういう職人技
みたいのが求められているわけじゃない
900774ワット発電中さん
2017/06/09(金) 22:35:04.77ID:5iWks2Ma
>>898
高密後化なんて今時小型マイコンのプログラマーでもやってない
まさかアセンブラで開発してるとか思ってる?

大規模なシステムは小規模なプログラムより難易度は高い
当然だが

あと、組み込み屋の方が品質に対する意識が高いなんてことはない
もちろん医療系とか車とかそういう一部の業界はそうだが

大規模プロジェクトは、設計がしっかりしてないと必ず問題が起こる
小型マイコンの小さなプログラムは問題が起こりにくいし、起こったとしても見つかりやすい
901774ワット発電中さん
2017/06/09(金) 22:39:14.54ID:5iWks2Ma
メモリ容量はPCでも当然気にするが、それは大きなデータに対してのみ

マイコンもそう
RAMをけちってビットフィールドに詰め込むような時代は終わり
コンパイルの最適化の設定も基本速度優先
902774ワット発電中さん
2017/06/09(金) 23:09:04.98ID:zuevROS6
>>899
今時のPCアプリだったらメモリやCPU、ストレージは使い放題、メモリ保護やタスクやプロセスのディスパッチ
I/OなどはOSまかせが常識だよな。組み込みも同じ感覚で書けるくらいリッチになっていると言うこと?
だとするならワンチップマイコンなんて用なしと言うことか。メモリは多くてもせいぜい100KBくらいしかないし
マルチタスキングをするにしてもノンプリエンプティブな実装がせいぜいだろうし

>>900
大規模な開発で難易度が上がるのは管理であってコーディングじゃないでしょ
903774ワット発電中さん
2017/06/09(金) 23:17:14.74ID:XJjVA5UE
この手の話題になるとみんな本当に生き生きとするのな
904774ワット発電中さん
2017/06/09(金) 23:19:27.52ID:5iWks2Ma
>>902
大規模なソフトを一度設計してみればわかるよ
905774ワット発電中さん
2017/06/10(土) 02:01:20.45ID:ZyIBtQoB
>>904
大規模な業務用アプリで大変なのは設計と管理。適切なリソース配分と仕様書の作成
一般的な業務用アプリでプログラマに要求されるスキルは高くないよね
しかもそのような用途だとC/C++じゃなくてJavaなどのGCを持つプラットフォームが
多くないか。メモリ保護どころかメモリ管理すら気にする必要がないね

というかプログラマの話のはずなのに何で上流の話になっているんだ?
906774ワット発電中さん
2017/06/10(土) 04:31:19.69ID:CZxF0HkE
なんで勝手に上流の話にしてるんだ?
907774ワット発電中さん
2017/06/10(土) 06:58:59.61ID:ldz5ytV5
そもそもPCソフト屋はハード(回路)が分らないって話だったのに。

ところで8ビットCPUを自作のコンパクトな並列処理で駆動する、なんて技術が無い人が
決まって言うセリフは「今はそんな時代じゃ無い」だな。
908774ワット発電中さん
2017/06/10(土) 08:19:43.45ID:CZxF0HkE
> 8ビットCPUを自作のコンパクトな並列処理で駆動する

なに言ってるかわからん
909774ワット発電中さん
2017/06/10(土) 09:50:30.94ID:ZyIBtQoB
>>906
もともとはPCアプリ屋から来る人が多いって話だろ。何で設計の話に
なっているんだ。畑違いから来た人がいきなり設計なんて出来るかよ
これはPC→組み込みも、組み込み→PCも関係ないはずだ

で、電気のでの字も知らない人がPCアプリ屋が組み込みに来て
どのくらいで使い物になるのか?

>>908
マルチタスキングのことだろ
910774ワット発電中さん
2017/06/10(土) 09:52:57.83ID:SP8cuWV2
ROM32kバイトしかないZ80の時代でも余裕でプリエンプティブマルチタスクあったよ。
911774ワット発電中さん
2017/06/10(土) 10:20:49.03ID:CZxF0HkE
マルチタスクを並列処理とは普通言わない
912774ワット発電中さん
2017/06/10(土) 10:28:18.05ID:CZxF0HkE
いつもの自作OSモドキを強要してる人か
8bitでOSは趣味の世界
業務じゃやらん
913774ワット発電中さん
2017/06/10(土) 10:49:08.94ID:ZyIBtQoB
OS無くともマルチタスク処理を行うことはそれなりにあるよな。この人は何を言っているんだ?
914774ワット発電中さん
2017/06/10(土) 10:51:00.24ID:SP8cuWV2
>>911 - 912
言いたいことはわからんじゃないが病院行った方がいいよ
915774ワット発電中さん
2017/06/10(土) 10:54:43.81ID:CZxF0HkE
>>913
マイコンが複数の処理を行うなんてごくごく普通
1個の処理しか行わないなんて方が珍しい

>>908 のいう「自作のコンパクトな並列処理」ってのはそんなごく普通の処理のことか?
916774ワット発電中さん
2017/06/10(土) 10:58:06.93ID:CZxF0HkE
一般的な言葉を使ってくれないと会話にならん

「8ビットCPUを自作のコンパクトな並列処理で駆動する」
まずは >>907 がこれの意味を説明することから
想像で話してもしょうがない
917774ワット発電中さん
2017/06/10(土) 11:11:10.45ID:SP8cuWV2
いつもの人か
楽しそうだねえ・・・・
918774ワット発電中さん
2017/06/10(土) 11:30:56.39ID:Thy92Rp7
コマンドの最後に&付けるのがそんなにすごいことだったのか
919774ワット発電中さん
2017/06/10(土) 11:39:30.10ID:4jMTntcQ
マイコンで並列処理(笑
920774ワット発電中さん
2017/06/10(土) 11:42:05.16ID:DwFPsn4u
自分だけは誰よりもわかっているという前提
921774ワット発電中さん
2017/06/10(土) 12:14:56.41ID:ldz5ytV5
>>916
別のスレでも書いたけど、私がポーリングが多いな、分離したいなと思ったときに
たまに使う、tiny2313のフルアセンブラ用の簡単なディスパッチャ。
違うメーカーのCPUだったり、処理内容によって中身は色々と変わる。

timer0割込み ・・・ Zレジスタ保存、実測値約1.3uS at 20MHz
cli
push zl
push zh
in   zl,sreg
push zl
mov  zl,sv_spl
in   sv_spl,spl
out  spl,zl
pop  zl
out  sreg,zl
pop  zh
pop  zl
reti
922774ワット発電中さん
2017/06/10(土) 12:24:53.51ID:eEXrQEYu
やっぱりお前か

最低限セマフォとイベントは必要だと思うが、その辺は?
923774ワット発電中さん
2017/06/10(土) 12:28:30.58ID:eEXrQEYu
デバッガの対応も当然無いだろうし
924774ワット発電中さん
2017/06/10(土) 12:35:42.38ID:ldz5ytV5
やっぱり私だよ。
デバッガは自作だけど、何だかもう話す気が無くなってしまった。
好き勝手に批判してバカにしていいよ。
925774ワット発電中さん
2017/06/10(土) 12:56:25.49ID:eEXrQEYu
わざわざバカにされるような書き方をするから
926774ワット発電中さん
2017/06/10(土) 12:58:44.02ID:9OmMxxTm
先日から根拠も前提も示さずに絡んでいるだけの奴がいるよな。学問・理系板になんでそんな奴がいるんだ?
927774ワット発電中さん
2017/06/10(土) 14:42:58.11ID:l2OJZdSA
>>921
クロック20MHzってやる気あるの
928774ワット発電中さん
2017/06/10(土) 16:51:36.81ID:ldz5ytV5
実を言うと、922 がセマフォとかイベントとかデバッガとか言うから、
922 が 921 の処理内容を、このタスク切り替えをなぁ〜んも理解してないのが分って、
体中の力が抜けて、やる気が無くなってしまったんだよ。
理解できないなら理解できないと言ってくれれば説明したのに・・・。
ま、いいんだけどね。
それぞれが信じるCPUとプログラミングでガンバロウねw
929774ワット発電中さん
2017/06/10(土) 16:56:10.02ID:DwFPsn4u
>>927
やる気がある周波数はいくつなんだよ
930774ワット発電中さん
2017/06/10(土) 16:56:11.31ID:CZxF0HkE
ん?
勘違いしてるのか?
>>921 の処理にセマフォやイベントが必要と言ってるわけじゃないぞ
マルチでタスクが動くならそういう機能も当然必要だってことを書いただけ
931774ワット発電中さん
2017/06/10(土) 16:56:58.67ID:ldz5ytV5
そのうちにdsPICでもやってみたいな、と思っています。
932774ワット発電中さん
2017/06/10(土) 16:58:29.99ID:CZxF0HkE
まあ当然あるんだろうけど

OSとしてのスペックが全く書いてないのが悪い
933774ワット発電中さん
2017/06/10(土) 16:59:33.66ID:ldz5ytV5
>>930
君には説明してもムダ。もっと勉強してね。
悪いけどキリが無いからこれで終わりにするよ。
934774ワット発電中さん
2017/06/10(土) 17:02:27.38ID:CZxF0HkE
>>931
dsPICなら最低でも80MHzか?

>>933
君からソフトに関して教わることは何も無いと思う
あんまりしつこく書くから君のOSモドキのスペックがどんなもんかちょっと興味を持っただけ
935774ワット発電中さん
2017/06/10(土) 17:27:00.43ID:SBNs3wom
>>933-934
お互いおちついて話せば経験が重なっていない部分で知識を交換できるのに。

相手が持ってる情報・知識を100%自分が持ってると思うのは傲慢ですよ。
936774ワット発電中さん
2017/06/10(土) 17:28:11.08ID:SP8cuWV2
え〜と・・・
脳梗塞カタブツ職人と俺スゲー勘違いアマチュアのディベート大会?
937774ワット発電中さん
2017/06/10(土) 17:57:23.68ID:xlxvltj+
>>927
「遅すぎる」「速すぎる」どっちの意味だろう?
938774ワット発電中さん
2017/06/10(土) 19:58:28.23ID:CZxF0HkE
>>935
OSごっこして遊んでるようなのから学ぶことは何もないよ
そんなのは20年前に卒業
939774ワット発電中さん
2017/06/10(土) 20:02:15.27ID:CZxF0HkE
おれが相手をするのは知識を得たいからじゃない
初心者に間違った知識を与えようとするアホの行為をやめさせる為
940774ワット発電中さん
2017/06/10(土) 21:15:51.85ID:UTVRQzrN
>>939
何を思い上がっているのか知らんが、2ちゃんなんて、昔から嘘と出鱈目の塊だ。
こんな場所の書き込みなんて信じる方がどうかしている。
941774ワット発電中さん
2017/06/10(土) 21:27:15.67ID:1hy+o247
続けて、どうぞ
942774ワット発電中さん
2017/06/10(土) 22:01:34.33ID:9OmMxxTm
>>939
ブーメランだな。学問・理系で定量的な話が出来ないあなたもアホです
943774ワット発電中さん
2017/06/10(土) 22:03:19.76ID:CZxF0HkE
続けて、どうぞ
944774ワット発電中さん
2017/06/10(土) 22:08:48.18ID:9OmMxxTm
ここ5年くらいで定量的な話が出ない無い奴がメッチャ増えた感があるな
専門板ですら人の話を聞けない奴がゴロゴロいるし
じゃあ2chを出れば解決するかかといえば大差ないか下手すれば悪化するオチが付く
945774ワット発電中さん
2017/06/10(土) 22:18:36.22ID:CZxF0HkE
ソフトの悩み相談で定量的な話ねえ
見本よろしく!
946774ワット発電中さん
2017/06/10(土) 23:47:01.76ID:qFnZKKVC
単一タスクが単一デバイスを扱っている限り排他はいらんだろ。
だけど >>921 みたいなコードで何したいのかはわからん。
原則オールアセンブラだろうし。
947774ワット発電中さん
2017/06/11(日) 08:24:24.69ID:GU75zwOp
同期も排他制御も出来ないマルチタスク
そんなものの需要はない

原則オールアセンブラ?
なぜ?
948774ワット発電中さん
2017/06/11(日) 12:26:08.07ID:CFhTb5/U
お前に需要があるかなんて、どうでもいいよ。
949774ワット発電中さん
2017/06/11(日) 12:26:34.67ID:HqHIi5/9
>>946
前にポーリングを分離したいときに使っていると書いたけど
たとえば
 SW1が押されたらLED1をA時間点灯し、
 SW2が押されたらLED2をB時間点灯する、
という2つの機能を実現するときのメインは(I/Oは全てポートA)

T1L1: sbic PinA,SW1 SW1が押されたか?
  rjmp T1L1      押されるまで待つ
  ldi ZH,high(A)    16ビット遅延ループカウンタのセット
  ldi ZL,low(A)
  cbi PortA,LED1   LED1を点灯
T1L2: subi ZL,1    ループカウンタ-1
  brne T1L2     ゼロになるまで繰り返し
  sbi PortA,LED1   LED1を消灯
  rjmp T1L1     SW1オン待ちへ
;
T2L1: sbic PinA,SW2
  rjmp T2L1
  ldi ZH,high(B)
  ldi ZL,low(B)
  cbi PortA,LED2
T2L2: sbiw ZL,1
  brrne T2L2
  sbi PortA,LED2
  rjmp T2L1
(これはあくまでも説明するためのサンプルです、念のため)
950774ワット発電中さん
2017/06/11(日) 12:45:03.60ID:HqHIi5/9
こういう事が2、30個の追加命令で実現できるのは便利だと思いませんか?
思わない? そうか・・、残念だな、では。
951774ワット発電中さん
2017/06/11(日) 12:45:35.02ID:BWExSxPJ
>>939
自分だけは常に正しいという前提
952774ワット発電中さん
2017/06/11(日) 13:07:11.11ID:xz800V6y
誰もマルチタスク自体を不要とは言ってないんじゃないかな。便利だよ確かに。
でもそんな縛りだらけのオナニープロラムはブログででもやっとけよって話なんじゃないの?
953949
2017/06/11(日) 13:40:16.57ID:HqHIi5/9
実際には上位PC通信処理、操作パネルのI/O処理 (液晶表示やSW入力や
ロータリエンコーダ入力、LED表示など)、バッファリングやファイル処理などの
要因別、種類別に分離している。
もちろん割込みも多用しているけど。
954774ワット発電中さん
2017/06/11(日) 13:50:02.28ID:xz800V6y
だから話のできない奴って言われるんだよ。
955774ワット発電中さん
2017/06/11(日) 13:50:10.28ID:+JFqp0a5
>>946
過去の書き込みを見てわかった
レジスタのバックアップすらしない、到底(ソフトウェア用語であるとこの)タスクとは呼べない代物か
C言語を使えないOS、自力でレジスタをタスクに割り振らなきゃならないOS、完全なオナニープログラムだな
956774ワット発電中さん
2017/06/11(日) 13:57:58.67ID:+JFqp0a5
>>953
それら全ての動作の関連がないなんてあり得ないわけだが
957774ワット発電中さん
2017/06/11(日) 14:05:08.28ID:HqHIi5/9
フルアセンブラではレジスタは自分で割り振るんだよ。
また必要に応じて自分で保存するんだよ。
頼むから理解できないなら黙ってPICをCで動かしてて。
もう終わり。ホント疲れる・・・。
それから腹が立つからといって下品な言葉は使わないように。
958774ワット発電中さん
2017/06/11(日) 14:12:59.32ID:+JFqp0a5
別のタスクのレジスタまで意識しなきゃならないマスチタスクwww
959774ワット発電中さん
2017/06/11(日) 14:13:18.58ID:xz800V6y
だから話のできない奴って言われるんだよ。
何度言わせる気だろう・・・・
返信要らんぞ、終わりなんだろ。
>>933くらいで終わってもらえればベターだったんだが。
960774ワット発電中さん
2017/06/11(日) 14:16:47.85ID:/TxiPKKK
チャタリングのない世界で生きてるような人は放っておこう。
961774ワット発電中さん
2017/06/11(日) 14:19:39.63ID:+JFqp0a5
その辺はあまり本質じゃない
ビジーウェイトの方が問題かと
962774ワット発電中さん
2017/06/11(日) 14:21:10.78ID:GIAgUFIk
このAVRのアセンブラコードにイチャモン付けている人はなんで自分でコードを晒さないの?
963774ワット発電中さん
2017/06/11(日) 14:26:10.29ID:xz800V6y
有償のもっといいものを使っていたり、フリーならすでに公開されていたり。
自分勝手に作った物なら自分だけで使えばいい。俺自身も作っているしな。
ここはオナニー自慢の場ではない。
964774ワット発電中さん
2017/06/11(日) 14:28:22.12ID:+JFqp0a5
>>962
仕事の依頼であればお話を伺いに参ります
965774ワット発電中さん
2017/06/11(日) 14:30:17.21ID:+JFqp0a5
過去ログを読めば、オナニー野郎がマイコンソフト初心者に対してマイナスであることがわかるから読んでみな
966774ワット発電中さん
2017/06/11(日) 14:34:48.75ID:vtbgFWUt
きっと「昔はすごかった」人なんだろうねぇ、どこの会社にもそういう人いるよ
967774ワット発電中さん
2017/06/11(日) 14:43:54.63ID:GIAgUFIk
>>965
他人の話を理解して客観的な会話をする気がないならTwitterかblogでやってくれ
たとえ2chであってもBBSでやるべきではない。そのような行為は荒らし行為である
968774ワット発電中さん
2017/06/11(日) 16:11:00.99ID:rKy0hDOC
>>949

解説ありがとう。
osというより、アセンブラで書くときのテクニックなんだね。
ラダー図っぽいことをさせるにはそれなりに便利そう。
969774ワット発電中さん
2017/06/11(日) 16:50:17.33ID:C/rzeMaB
>>957
疲れるなら読み書きしなきゃいいのに
970774ワット発電中さん
2017/06/11(日) 17:30:20.01ID:FPV24ORd
>>944
タイミング的にArduinoから流れてきたのかも
971774ワット発電中さん
2017/06/11(日) 20:02:36.93ID:+JFqp0a5
>>967
それそのまんま>>907なわけだけど
972774ワット発電中さん
2017/06/11(日) 20:04:52.38ID:+JFqp0a5
「アセンブラが書けなきゃ素人」
「OSを自作しなきゃ素人」
こう言い続けてる時代遅れの人
ソフトを学んだことが無いから用語も目茶苦茶で会話も通じない
973774ワット発電中さん
2017/06/11(日) 20:13:31.79ID:GIAgUFIk
>>970
あー確かに。Arduinoかどうかはともかく最近流行の高度に抽象化された
開発環境しか知らない人って感じだな。ローレベルの知識は全然無い?みたいだし
974774ワット発電中さん
2017/06/12(月) 01:06:16.37ID:q+EdOCsr
>>973
あの頃からArduino使ってIoTとか言って展示会に参加しだした怪しい企業も出てきた気がする。
さらにラズパイまで出てきてトラ技もラズパイだらけでつまらなくなった
そして最近は部品メーカーが電子部品の使い方をサポートページに載せる始末
電子部品使ったことがない変な客からの問い合わせが来るようになったのかな
975774ワット発電中さん
2017/06/12(月) 01:23:38.81ID:n5AcxFM7
昔からアプリケーションノートはあっただろう
976774ワット発電中さん
2017/06/12(月) 08:29:02.40ID:zRpk7WYj
ところでみなさんおいくつですか?40代?50代?
977774ワット発電中さん
2017/06/12(月) 08:34:09.35ID:FHhDF2JN
18歳
978774ワット発電中さん
2017/06/12(月) 09:29:48.84ID:ErxmcV8Z
10万47歳
979774ワット発電中さん
2017/06/12(月) 10:49:13.88ID:Rv0qxI6P
>>967
ここやPIC、AVRのスレに張り付いている、少し頭のおかしな人だから相手にしない方がいい
得意技はIDをコロコロしながらの珍妙書き込みで
いよいよ追い詰められると火病の発作を起こして爆発する
980774ワット発電中さん
2017/06/12(月) 13:08:17.11ID:dXLEiso+
人格批判はいいからマイコンソフトに関係有ることを書きなさい
981774ワット発電中さん
2017/06/12(月) 18:29:23.85ID:y8kpndJ8
>>979
徹底的に追い詰めリアルで爆発してもらって豚箱に入っていただいた方が平和になりそうな気も
982774ワット発電中さん
2017/06/12(月) 23:01:06.17ID:os9UqPpH
>>976
30代、趣味、初心者
983774ワット発電中さん
2017/06/13(火) 05:12:29.19ID:8suqlwaz
趣味?
984774ワット発電中さん
2017/06/13(火) 12:53:05.74ID:Ogg3T5il
>>978
中二病はっけーんwww
(おれ平成生まれだから世紀末とか知らない設定だし~)
985949
2017/06/13(火) 15:39:28.31ID:1CTmRlyL
並列処理のサンプルが切り替え部、実行部のリストだけで中途半端だし、
AVRアセンブラ派の中には興味がある方がいるかもしれないので、
(一人もいない可能性のほうが高いがめげずに)(笑)
残りの準備部のリストも載せます。
ただしAVRに興味が無い方のために「AVRマイコン総合スレ」に移動します。
986774ワット発電中さん
2017/06/13(火) 19:06:25.64ID:ugs6HTBw
そんなに鈍臭いゴミを書き込まなくて良いよ
987774ワット発電中さん
2017/06/13(火) 19:15:07.32ID:FVlHCWo2
アセンブラが判らない奴は三流。デバッグビルドとリリースビルドで動作の不一致が発生したらお手上げだしな
988774ワット発電中さん
2017/06/13(火) 19:18:18.79ID:emimBve7
>>985
自分のブログでやれ
989774ワット発電中さん
2017/06/13(火) 19:29:54.77ID:Km47TuX0
どういう解釈すると「興味ある人も居るかもしれない」になるんだろう。
990774ワット発電中さん
2017/06/13(火) 20:30:07.18ID:2sJvfqQj
すげーメンタルやなw
991774ワット発電中さん
2017/06/14(水) 02:12:37.27ID:+D+SZcUM
このスレか。アセンブラできない馬鹿が暴れるんだって?
992774ワット発電中さん
2017/06/14(水) 03:29:15.77ID:SQuzZElI
℃玄人?
993774ワット発電中さん
2017/06/14(水) 09:20:06.13ID:FUVvR6Yc
別にタイムスライスで動かすくらいのことは必要に迫られてやったし、
そのうちタスク間でメッセージのやりとりが必要になってきたから、
セマフォとかメッセージのやりとりつけたり、
仕事もないタスクに切り替えるのがもったいないからタスクのステート管理入れたり、
優先度管理をつけてみたり、
一時的に使うだけのメモリを静的に確保するのがもったいないっていうんで
メモリプール管理追加したり、MMU使った仮想記憶対応させてみたり

なんていう具合にだんだん大きくしていったっていうことはあったし、いい経験だったけど
今はもうやらないかなぁ。一から作るだけの時間があるなら他のことをやりたいってとこか。
994774ワット発電中さん
2017/06/14(水) 09:48:56.70ID:bEY0dNRh
994
995774ワット発電中さん
2017/06/14(水) 11:54:39.07ID:WK33wR5A
itronくらいは弄ったことありそうだな
996774ワット発電中さん
2017/06/14(水) 12:43:42.61ID:GQNnUudK
996
997774ワット発電中さん
2017/06/15(木) 06:37:04.48ID:PA2+yiZQ
997
998774ワット発電中さん
2017/06/15(木) 12:16:50.40ID:s5WU0tmU
998
999774ワット発電中さん
2017/06/15(木) 12:55:49.18ID:pO0hC7jd
>>993
今までの書き込みのレベルから、実際に作ったとは思えない
1000774ワット発電中さん
2017/06/15(木) 12:57:28.29ID:pO0hC7jd
いつもの人とは違うかもしれないけど

さよなら
10011001
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 319日 8時間 49分 18秒
10021002
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況



lud20241216100116ca
このスレへの固定リンク: http://5chb.net/r/denki/1469905691/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「マイコンソフト 悩み事相談室 2 [無断転載禁止]©2ch.net YouTube動画>12本 ->画像>3枚 」を見た人も見ています:
マイコンソフト 悩み事相談室
シスター紅の悩み事相談室
自営業 悩みごと相談室 47
自営業 悩みごと相談室 51
自営業 悩みごと相談室 46
自営業 悩みごと相談室 41
[けんじの]どすけべエロ画像3[悩み事相談所有り]
【身体】ズバリ解決!名医のお悩み相談室 気づくのが難しい『前立腺がん』 前立腺肥大症との見分け方は?[09/02] ©bbspink.com
無職・だめの為の悩み相談室
ライダーマンのお悩み相談室
吹奏楽部は「ブラック部活」 NHK「クロ現」で議論に[長文先生のお悩み相談室] Part.3
【社会】日本政府が「悩み相談」リンク表示をマイクロソフト社に要請 検索サイトの99%カバーへ…「死にたい」と打ち込むとリンク表示が
ダラマンほのぼの相談室 Part33
ダラマン労働相談室 Part34
【トルク】 モーター何でも相談室 【回転数】
(●ο) 静岡・自演ヒキの夏休み 子供相談室 (ο●)
【不本意入学のスクツ】明治大学学生相談室 "進路変更を考えてる人へ"【早慶上理落ち】
NIPお悩み相談室
お悩み相談室開催中
今日子の悩み相談室
〜〜お悩み相談室〜〜
アプローチの悩み相談室 13
drunkerの「悩み相談室」 2017
★ピクルス王子のお悩み相談室★
413の悩み相談室【1人ずつ順番にな】
08070507787 ★ 真智宇 先生の悩み相談室
08070507787 ★ 真智宇 先生の悩み相談室
【復活】セックスお悩み相談室【できるか?】
【お賽銭不要】 悩み相談室by仏様 第8集会所 【dat落ち不要】
【元セクシー女優】💗松本亜璃紗ちゃんねる/ありちゃん💘【恋のお悩み相談室】
【ズバリ解決 名医のお悩み相談室】リモートワークで頻尿になってしまった…いったいなぜ? [アルカリ性寝屋川市民★]
【LGBT】自分が女性であることがいや。もし今世、性を男にした場合、来世はどうなるのでしょうか。【ハッピーサイエンスお悩み相談室】
山口龍之介の借金相談室 Part8
【大衆演劇★なんでも相談室 3幕】
【>_<】 二郎相談室 【解決】
コロコロ シーバスなんでも相談室 荒らしはこちら
No A012-2 【ジャマイカン恋愛相談室】広告対策
船乗りなんでも相談室・12
C++相談室 part142
シーバスなんでも相談室32
[ワッチョイ]船乗りなんでも相談室・12
■コンサル田中の経営相談室。■
【構成】BTO購入相談室【見積り】■32
初心者優先デジタル一眼質問・購入相談室 122
【スキー】中級者以上・アイテム相談室【何でも】 Part.2
不登校相談室8
船乗りなんでも相談室・13
船乗りなんでも相談室・11
小堀豊の何でも相談室
船乗りなんでも相談室・16
C++相談室 part135
C++相談室 part138
C++相談室 part144
C++相談室 part143
C++相談室 part147
C++相談室 part134
C++相談室 part137
シーバスなんでも相談室25
シーバスなんでも相談室30
シーバスなんでも相談室24
シーバスなんでも相談室30
シーバスなんでも相談室31
MFC相談室 mfc23d.dll
23:08:46 up 27 days, 12 min, 0 users, load average: 9.15, 9.65, 11.87

in 2.8607468605042 sec @2.8607468605042@0b7 on 020913