X



トップページ電気・電子
722コメント267KB

マイコンソフト 悩み事相談室 4

0001774ワット発電中さん
垢版 |
2020/09/11(金) 09:38:11.57ID:cJDnlvMz
.
  ∧ ∧    
  ( ´・ω・) < コンフィグって何? 昆布なら知ってる。  ボラチルって何? ボラは魚だよ。
  ( ∪ ∪   ,.-、     ,.-、   ,.-、     ,.-、
  と__)__)  (,,■)   (,,■)  (,,■)   (,,■)
         PIC    AVR  H8    ARM

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

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

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

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

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

  過去スレ
    1 2014/09/11〜
    2 2016/07/31〜 http://rio2016.2ch.net/test/read.cgi/denki/1469905691/l50
    3 2017/06/19〜 https://rio2016.5ch.net/test/read.cgi/denki/1497806664/

  では、質問、ドゾ〜
0002774ワット発電中さん
垢版 |
2020/09/11(金) 12:06:20.87ID:oj7dDQPt
>>1
0004774ワット発電中さん
垢版 |
2020/09/12(土) 09:52:38.39ID:k1hy3rAa
シーケンスのわからないバカがまだ何か言ってる。
そこじゃねえんだよ
0005774ワット発電中さん
垢版 |
2020/09/12(土) 10:27:50.48ID:FbNjUiO5
説明できないなら黙ってればいいのに。
0006774ワット発電中さん
垢版 |
2020/09/12(土) 10:38:15.05ID:k1hy3rAa
「書き込みシーケンス途中で落ちるのが悪い」だと?
「任意のタイミングで電源を切ることが出来る」システムが欲しいって話をしてるんだ。
そしてそれを実現するために工夫された回路やプログラムが世の中に存在してるんだ。
それが無駄だってか?
己の無知を恥じろ。
0007774ワット発電中さん
垢版 |
2020/09/12(土) 10:53:09.47ID:FbNjUiO5
アドレス不定になるから、シーケンスで対処するべき、って主張なんだと思うけど、それは置いておいて、
>>3の条件で書き込みアドレスが不定になるものってあるのかな? って話なんだけどな
ない、は言えないね。悪魔の証明だ。

勘違いしてるようだけど、アドレスが不定にならないならシーケンスやハードでの対処が要らない、って言ってるわけじゃないよ。
0008774ワット発電中さん
垢版 |
2020/09/12(土) 14:51:57.19ID:HAjJe11P
・キャパシタと電圧監視で書き換え完了できる動力が保証できる場合のみ書き換えを開始する
・CRCとかを最後に書くようにして2つの領域を交互に使うようにする
のいずれかになるね
前者は外付け部品が必要になるし、後者はCRCの計算と二倍以上の記憶領域が必要になるから用途で使い分けたらいいと思う
0009774ワット発電中さん
垢版 |
2020/09/12(土) 23:20:39.88ID:ioZIeKlC
自分がよく使うマイコンのマニュアルを読むと内蔵フラッシュに書き込み中のリセットは
所定のリセット条件を満足すれば問題ないようだ
禁止条件にも書かれていないし書き込み中のブロックが不定になる程度ですむと思われる
とはいえ常識的に考えて日常的にそのよう状況が発生する設計は避けるべきだとは思うが

書き込み中に規定外の電圧への遷移や一部のフラグの変更等はフラッシュへダメージがある
可能性がある理由で禁止されている
0010774ワット発電中さん
垢版 |
2020/09/13(日) 14:40:15.67ID:4A2ATnUY
>>7
> アドレス不定になるから、シーケンスで対処するべき、って主張なんだと思うけど
ここで言うシーケンスって何?
0014774ワット発電中さん
垢版 |
2020/11/21(土) 03:30:56.98ID:mvJwl4hr
逆ポーランド記法 知ってますか?
0015774ワット発電中さん
垢版 |
2020/11/21(土) 08:21:59.31ID:V+CW9NwU
オペコペコペコ、オペランド…今から緊急手術を行う‥‥doctor P
0016774ワット発電中さん
垢版 |
2020/11/22(日) 16:13:13.32ID:uM/r69n4
普通の強盗     ・・・・「金を 出せ!」
ポーランド人の場合・・・・・「出せ 金を!」・・・「キン玉じゃない!」
0017774ワット発電中さん
垢版 |
2020/11/24(火) 02:16:18.76ID:kvg4LDH+
1 2 + [ENT]
0018774ワット発電中さん
垢版 |
2020/11/24(火) 17:01:25.01ID:CaOWg8bP
>>17
1に2を足す
Mind
0019774ワット発電中さん
垢版 |
2020/11/24(火) 17:08:32.13ID:CaOWg8bP
>>16

 ポーランド記法・・・・「金を 出せ!」 値+命令
非ポーランド記法・・・・「出せ 金を!」 命令+値

日本語はポーランド記法に近い語順
英語は非ポーランド記法に近い語順
0021774ワット発電中さん
垢版 |
2020/11/24(火) 17:43:54.72ID:ca7tlGoM
 ポーランド記法・・・・金を出せ お前は 俺に
非ポーランド記法・・・・お前は 金を出せ 俺に
逆ポーランド記法・・・・お前は 俺に 金を出せ
0022774ワット発電中さん
垢版 |
2020/11/25(水) 14:11:24.88ID:pPjiI1i3
強盗の例は分かりにくいので、数字と演算子で教えてください。
hp電卓と似ていると聞いたことがあります。
0023774ワット発電中さん
垢版 |
2020/11/25(水) 14:21:45.85ID:YYDWch3M
非ポーランド記法・・・・ (1+2)*3
 ポーランド記法・・・・* + 1 2 3
逆ポーランド記法・・・・ 1 2 + 3 *
0024774ワット発電中さん
垢版 |
2020/11/26(木) 11:19:42.31ID:DbBodVXO
非ポーランド記法・・・・ (1+2)*3
逆ポーランド記法・・・・ 1 2 + 3 *

非ポーランド記法・・・・ 1*(2+3)  の場合は
逆ポーランド記法・・・・ 1 * 2 3 +  でしょうか。
0026774ワット発電中さん
垢版 |
2020/11/26(木) 23:24:19.53ID:NmCuEJ4d
>>25
演算子から2つ前の値しか関係しないということですね。
0027774ワット発電中さん
垢版 |
2020/11/27(金) 00:50:46.93ID:qOCkykOf
>>25
演算子から2つ前の値しか関係しないということですね。
0028774ワット発電中さん
垢版 |
2020/11/27(金) 10:47:23.62ID:Fat6lDrP
基本スタックマシンだから
push 1
push 2
push 3
popしてpopして足してpush
popしてpopして掛けてpush
みたいな感じ
0029774ワット発電中さん
垢版 |
2020/11/27(金) 17:43:17.37ID:+rvsAsbY
>>24
逆ポーランドだと312+*でも行けない?
スタック型よね。
fothとかpostscriptとか。
0031774ワット発電中さん
垢版 |
2020/11/28(土) 08:25:49.19ID:69g8Kycs
ひとつの袋に黄色いりんご1個と赤いりんご2個が入っています。
その袋を3つ買いました。全部でいくつのりんごを買ったでしょう。

生徒:3×(1+2)=9 です

先生:バツです。
0032774ワット発電中さん
垢版 |
2020/11/28(土) 10:34:28.01ID:5R63qc+W
(1+2)×(3+4)は、
1 2 3 4 + ?? 一時記憶?
0034774ワット発電中さん
垢版 |
2020/11/28(土) 17:52:39.84ID:GdAiT2g5
スタック自体が一時記憶だからな。
1に2を足して3に4を足して掛ける。
0035774ワット発電中さん
垢版 |
2020/11/28(土) 23:15:28.05ID:69g8Kycs
数字の打ち込みはスタックに積むこと。
二項演算子を「スタックから2つとってきて計算してスタックに戻す」と考えれば理解しやすかも。
0036774ワット発電中さん
垢版 |
2020/11/29(日) 01:40:40.38ID:3zVdwsWE
なるほど 上2つの数値が対象でしたね。
どんな複雑な四則計算も、それでできるのでしょうか。

(1+2)*(3+4)/( (5+6)*7)

1 2 + 3 4 + * 5 6 + 7 * / ですね
0037774ワット発電中さん
垢版 |
2020/11/29(日) 08:13:29.64ID:uy969WVb
四則演算に限らず(用意されてりゃ)関数とかも使える
sin(√(1 + 2) * 3)
1 2 + √ 3 * sin
0038774ワット発電中さん
垢版 |
2020/11/29(日) 09:08:54.37ID:4bTjHEFc
関数や演算子のパラメータの数だけスタックから取ってきて、結果をスタックに返すわけだしね。
0039774ワット発電中さん
垢版 |
2020/11/29(日) 23:53:42.49ID:pHDP89rc
usin(√(1 + 2) * 3)
1 2 + √ 3 * sin
なるほど、これは簡単だと思うけど、
式の()とか、優先順位を人間が解析した上で 1 2 ...と記述を始めるわけですが、
その解析をしなくても、数式通りに
usin(√(1 + 2) * 3)
と書き込めば、Cとかならコンパイラが計算してくれますよね。
だとすると、ポートランド記号は、どういうときに使用されるのでしょうか。
0040774ワット発電中さん
垢版 |
2020/11/30(月) 00:21:05.84ID:+Rk4LA/f
逆ポーランド電卓を使う時とか8087をアセンブラで書く時とか
0041774ワット発電中さん
垢版 |
2020/11/30(月) 06:02:05.38ID:s3QaQSrG
>>39
> ポートランド記号は、どういうときに使用されるのでしょうか。
逆ポーランド記法な
使うのは Forth とか PostScript を使う時かな
今どきそんな機会があるかどうかは知らんけど
0042774ワット発電中さん
垢版 |
2020/11/30(月) 08:39:09.36ID:ZNwvj6Aj
昔の同僚にHPの電卓のファンがいて、逆ポーランドの方がわかりやすいと言ってました。
>>39の感覚は、「通常の数式表現から逆ポーランドに置き換える」というものだと思いますが、
その同僚の感覚は「いきなり逆ポーランドで考える」だったと思う。

俺は、英語の文書を作るときに、いったん日本語で考えてから翻訳しますけど、
英語ネイティブや、そこそこの英語使いなら最初から英語で考えるはず。それに似ているかも。

俺の逆ポーランドに対する感覚は>39に近いけどね。

プログラムの中でユーザーが入力した「通常の式」を解釈するときは、逆ポーランドに置き
換えるか、再帰的に式を解釈したりしていますが、後者もスタックを使っているのは同じ。
0043774ワット発電中さん
垢版 |
2020/11/30(月) 09:43:22.99ID:lX/n2/Yk
>>42
昔、数式のパーサーを作ったけど、確かにスタック操作だったのを思い出した
0044774ワット発電中さん
垢版 |
2020/11/30(月) 10:05:34.37ID:oGFM/dvN
>>41
1+ 2 をアセンブラで書くときも
mov a,1
mov b,2
add a,b
とかやるんじゃないか?

今どきそんな機会があるかどうかは知らんけど
0045774ワット発電中さん
垢版 |
2020/11/30(月) 10:23:06.04ID:s3QaQSrG
>>42
1 と 2 を足した(+) ものに 3 と 4 を足した(+)ものを 掛ける(*)
なので日本語と逆ポーランド記法の順序は似てる

>>44
マシンによるけど
mov a, 1
add a, 2
ってやれることが多いからちょい微妙な気がする
0047774ワット発電中さん
垢版 |
2020/11/30(月) 12:06:20.48ID:+XkoxYuh
>>42
RPN電卓は慣れてくると変換とか考えなくても自然と扱えるようになる
特に()とか計算順が関係してくるのはなんも考えずに先頭から入力していけるし
まあ最近の関数電卓は数式入力とか普通だからあまり魅力はないかもしれないが

あとはPOSレジ(加算器)なんかは逆ポーランド的操作だね
値段 +
値段 +
個数 *
値段 +
 :
合計
みたいな感じだし
0048774ワット発電中さん
垢版 |
2020/11/30(月) 18:20:03.84ID:ZNwvj6Aj
>なので日本語と逆ポーランド記法の順序は似てる

Forth系言語の 日本語Mind とか…
0049774ワット発電中さん
垢版 |
2020/12/22(火) 15:19:08.99ID:QjT9JRVE
FORTHってなかなかユニークな言語だよね。
昔、興味が湧いて、使っているCPU用に移植した事がある。
その時に逆ポーランド記法を初めて知ったけど、演算処理が簡単になるので、
その後、あるオリジナルの言語処理系を作った時にも採用した。
0051774ワット発電中さん
垢版 |
2020/12/29(火) 13:30:15.19ID:8Q+qtXT+
そうなの?
0052774ワット発電中さん
垢版 |
2020/12/30(水) 17:32:15.95ID:KLCtju1g
ATmega168で「I2C and SPI通信モニタ装置」を製作した時に
データ取り込み開始・停止の条件判定にスタックを使う逆ポーランド記法でやった

Forthを考えついた人は天才だと思う
0053774ワット発電中さん
垢版 |
2020/12/31(木) 12:06:57.06ID:IvvwJueg
スタックにデータを置くシーケンサ(PLC)にも変数(データ格納アドレス)は存在しない。
格納場所が決まっているので存在しようがないというか、
そもそも存在させないためにスタックに置くというか・・・
0054774ワット発電中さん
垢版 |
2021/04/26(月) 16:16:08.19ID:YyDQmy1c
質問です。

マイコンのプログラムは今はCで書いていますが、
Pythonで書くことはできるのでしょうか?
0056774ワット発電中さん
垢版 |
2021/04/26(月) 17:14:41.23ID:YyDQmy1c
>>55
ありがとうございました。
ググったら、いろいろとわかりました。
どうもありがとうございます。
0058774ワット発電中さん
垢版 |
2021/04/26(月) 23:08:30.38ID:YyDQmy1c
>>57
ありがとうございます。

確かにARMクラスが妥当だと思いますが、デジキーの案内のページを見ると...

MicroPythonはすでに何種類かのマイクロコントローラシリーズに移植されており、
これを出発点として新規プラットフォームに移植するか、
すでにサポートされているマイクロコントローラを選択することができます。
図1に示すのは、MicroPythonのソースコードのメインディレクトリです。
ここから、サポートされているマイクロコントローラデバイスを確認できます。次
のマイクロコントローラが含まれます。
ARM®ベースのマイクロコントローラ
Texas Instrumentsの CC3200
Adafruitの ESP8266
Microchip Technologyの 16ビットPICマイクロコントローラ
STMicrolectronicsの STM32

と、書かれています。 PICでもできるみたいで、興味があります。
レスを投稿する


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