ゆるPIC
PICマイコンでなんか作ったりとか
ゆる~く遊んじゃおうってスレです
一応、他人をこき下ろすような発言は禁止
どうしてもって場合は、どうしてそう思うのかまで書くこと
すんません、ゆるAVRの1さんのコピペですm(_ _)m
PICなんてコピペばっかりなんだからええやろ >>76
それ全部Cで書けると思います。
今さらアセンブラって、何か意味あります? (ひろゆき) アセンブラ自体は意味ある。
「全部アセンブラて組め」はナンセンス。 MCCでタイマ割込をセットして、出来上がった割込に書き込むだけで動くと思うけど。
アセンブラにしないと間に合わない処理なら、クロック上げるか、PICの品種を変えれば良い。
アセンブラの割込というのも確かに意味不明。 >>78
意味あります?って >>75様が Cがわかんないと仰っとるのだから
アセンブラがわかるのなら 無理してCで書くことにこそ 意味あります? >>75は何なら分かるんだろう。それは書いてないんだな。Basicだったりして。 >>83
bash python powershell MicroPython 使えよ。マジで。
Raspberry Pi Pico いいよ。 >>75はタイマーの使い方がわからん、って言ってるぐらいだから、PICでほかの何かはできてる。 >>87
ここは「ゆるPIC」スレ
「必須とか絶対」みたいな事は捨ててゆるく使えばいいと思うの\(^o^)/
つまりMCCで設定を済ませて、他人のソースをコピペして、よくわからないけど動いたからヨシ! >>87
そりゃ、Cからアセンブラに変換するからな。まあ、いきなりマシン語でもいいとは思うが。 だまされるな
>>87は「Cを作る人」のことを言ってるんだぞ
「Cで作る人」じゃないぞ >>89 はCコンパイラを作る人のことのつもりだったんだが。
YACC の知識のほうが重要だな。 割り込みと関数コールのスタックの使い方が違う場合はアセンブラを使うか割り込みに特化した関数コールが必要だろ。
x86でもinterrupt修飾子が用意されたしな。 >>87
必須ではない
アセンブラを経由しないコンパイラなら
>>93
でっていう cでcを作る方法
他の言語でcコンパラを作る
cでcコンパイラを書いてcソースをコンパイルする
cで作ったcの出来上がり
さらにできたcで自分自身のソースをコンパイルすると
自分自身で書いたcができるというのはオマケ マシンコードを実行するCPUではなくて、たとえばVTL系言語などの文字列を取り込んで
直接に実行、処理するCPUとかあれば面白いな
マシンコードに翻訳するアセンブラもコンパイラも不要になる マシンコードを実行するCPUではなくて、たとえばVTL系言語などの文字列を取り込んで
直接に実行、処理するCPUとかあれば面白いな
マシンコードに翻訳するアセンブラもコンパイラも不要になる >>101
JAVAバイトコードを直接実行するCPUとか一時話題になってたけど
流行んなかったね >>102
ARMの大半に付いてるから空気化しただけ。 >>101
それらの言語のインタプリタをC++で書いて
System-C化して、高位合成でRTLに変換して
FPGAにでも書き込んでやればOK。 なんか画期的なコンピュータが出現しないかな
アホみたいにプログラをシコシコ書かなければいけないノイマン型はもう飽きた そうか、ノイマン型がお嫌いか。
そんな君に朗報だ! 僕らが大好こPICさんは
ハーバードアーキテクチャらしいぞ? しらんけど(^p^; 算盤 いず ざ でぃじたる こんぴゅーてぃんぐ つーる。
計算尺 いず ざ あなろぐ こんぴゅーてぃんぐ つーる。
モーター駆動で円形計算尺をがしゃこんがしゃこん回す機械があれば
どういうあつかいなんやろな?しらんけど(^p^; >>111 そうなのか?なら すてっぴんgもーたーで
>>112 ははは こやつめ ははは(^p^)
もし本気で仰ってるのならノイマン型の定義(の紹介)よろすこ >>113
「PIC は非ノイマン型コンピュータだ」と本気で言ってるの?マジ? ノイマン型コンピュータとはいわゆるストアードプログラムコンピュータのこと。
どこかに記憶されたプログラムをバスを通じてCPUに読み込んで実行するやつ。
ハーバードアーキテクチャーのように命令用のバスとデータ用のバスが分かれているとかわかれていないとかは関係ないのじゃ
一方非ノイマン型とはその名の通りノイマン型じゃないやつを言う…ってオイ!
非ノイマン型の例としてはニューロコンピュータや量子コンピュータのようなものをいう…んだそうだ、どっちも知らんが
要するに「ハーバード型かそうでないか」と「ノイマン型か非ノイマン型か」は次元大介とは違うので一緒に語ってはいけない…そうだ だいぶ前にどっかのスレで議論になってたけどノイマンというといろいろなとらえ方を
される可能性があるから最初からストアードプログラム方式といえば間違いないんじゃね
というような結論だったような なるほどつまり、PICをふくむはーばーどあーきてくちゃには
ノイマンボトルネックが無いんや!とおもってたけど、それは過大な評価で、
ノイマンのボトルネックを緩和抑制しているだけ、ってことか・・・ 勉強になりました(ぺこり まずはノイマンボトルネックが何を意味しているかの定義が必要 それにはまず、
クラインの壺
ノイマンの壺
サクラダの壺
を見分ける必要があるな・・・ しらんけど(^p^; プログラムとデータのバスを分ければ命令の先読みができるので
特別な工夫無しで実行速度が2倍になる
AVRの1クロック1命令実行がそれ ググってみたら、そうだったのか。いまやPICだけじゃなくて
AVRやSTMにも採用されてたんやね、そっちはしらんかったわ; 「いまやPICだけじゃなくて」
AVRでさえPICの何年も後に作られたのに。。。 マルチタスクが動かないマイコンは<周辺Peripheral 入出力I/O 制御装置Controller>です。
システム制御装置ではありません。
そう思いませんか? [システム制御装置]かどうかは使い方で決まるのであってマルチタスクかどうかは関係ないから マルチタスクでは作業の種類(タスク)別に分離、独立してプログラムを書けばいいので
→プログラムが単純、明確になる。
→開発時間が短かくなり、バグが入り込む可能性が少なくなる ま、たで食う虫も好き好きで、
沢山の「割り込みとポーリングでスパゲティ状態」でもいいんだけどねw >>124
PIC18以上ならFrenRTOS動く たかが割り込みでポーリングさせるだけのことで
スパゲッティ状態になるという頭って脳細胞があるのか? 万年初心者のディスパッチャ君の相手をするだけ時間の無駄 ぼくはナポリタンすこ(^p^)
PICと関係なくて悪いが、ラーメンスープでスパゲッティを
スープスパ的に喰うのも独特の歯ごたえで美味しいぞ!! >>131
そもそもプログラムが簡単なら流しソーメン状態なので、
どうやってもスパゲッティ状態にはなりませんネw
割り込みが沢山、ポーリングも沢山、という状況でないなら
マルチタスクにする必要はありません。
ところで
「割り込みとポーリング」はたまにやるけど、
「割り込みでポーリング」はあまりやらないな、割り込みの意味が無くなると思う、
>>133
我が家ではレンジでスパゲティをゆでられる台所用品を買ってから
食卓にスパゲティが登場する機械がものすごく増えた。
スパゲティは簡単にも複雑にも調理できるのが良い。
私が一番よく作るのは、ニンニク+ベーコン+唐辛子。 割り込みが沢山、ポーリングが沢山だろうが
スパゲティにはならんな
行儀が悪いのを承知でCPUパワーやリソースを節約
なんてのが昔はあったけど
今は特殊な場合だけ
割り込みをトリガーとしたポーリング
まあ普通にあるんじゃない
パスタならサイゼリヤ
安くてうまい 前に書いたようにマルチタスクを使うメリットは十分にあると思うけど(>>127)
なんでそんなにマルチタスクを嫌うんだろ?
天才プログラマには、私みたいな低レベルプログラマ向けの低レベル道具(マルチタスク)は要らない、
シングルタスクで十分って事なんだろうな、素晴らしい! 羨ましい! 私もそうなりたい!
ってことでそろそろ寝るかなw
お付き合い、ありがとうございました。 マルチタスクは以下のような欠点がある
余分なCPUパワーやリソースを使う
再現性の悪いバグが発生しやすい
プログラミングスキルが必要
デバッグしにくい >>136
OSを推している人がOS使っていない人に対してOSのメリットしか書かないなら議論にならない。
OSを使うことにメリットしかないなら、MCCが生成するコードはかならずOS込みになるか、
最低限OSを使うオプションがかならず入るはずなのは、誰もがわかる話。
採用されたり採用されないモノには、必ずデメリットがある。
推す人がデメリットを客観的資料を提示して説明しないのは、不誠実で、自分の意見で相手を
丸め込もうとしているのだと、まともな市民なら子供のときから教えこまれているはず。
「デメリットは自分で見つけろ、情弱は俺のカモだ」は、ふとんやマンション投資、鍋、化粧品などの悪質セールスの基本的態度。
OSを推している人はOS使っていない人に対してOSのデメリットを説明しないと。 MCUのソフト業界では
マルチタスクのタスクは
マルチタスクOSのタスクを指すわけだけど >>140
>>127のメリットを享受するのにOSなしでできるのかな?
>>127、>>136が言ってるのはマルチタスクであって、
「ふつうの英単語としてのタスク(仕事)」を「ふつうの英単語としてのマルチ(複数)」にこなす
という意味じゃないよね。
後者の意味なら、どんな組み方であっても、「LEDちかちかさせて、モーターをON/OFFさせたら、マルチなタスクだ」ってなりそう。
LEDをちかちかさせるだけのプログラムを書く(ほかはさしあたり知らんでも可)
モーターをON/OFFさせるだけのプログラムを書く(ほかはさしあたり知らんでも可)
これをひとつのマイコン上で動作させることができるのがマルチタスクの一面で、>>127に書かれているメリットだし。
その場合はOS(最小限タスクの切り替えをしてくれるもの)が前提になると思うんだが。 お早うございます、
リアルタイム処理が要求される機械制御でマルチタスクを使う意味は大いにあると思っているけど、
賛同者が一人もいないのは残念!
しつこいと言われそうだけど、例のタスク数2個のサンプル上げときます。
このtiny2313で書いたタスク切り替えのオーバーヘッドタイムは1ウS程度です。
誰かPICに詳しい人がPICで書いて実現してくれると、マンモスうれぴーw
https://pastebin.com/ZYFYsR3S
じゃ皆さん良い1日を! >>139で条件付で議論に賛同してるのにな。今は説明が足りない状態。 >>143
それは OS なのか、OS ではないのか?
143 の意見は? >>137
彼の言うマルチタスクとはコンテキストスイッチもプリエンプションも同期も何も無い、ただのディスパッチ。
会話が成り立たないので諦めろ >>143
機械制御で1万個の内部リレーを使ったプログラムは
タスク数1万個のマルチタスクかね?
あれも上から順に処理してるだけだけど?
ゲームで1万個のキャラ処理してるのと同じことしてるだけ
それしながら音楽鳴らしたり背景動かしたりやれてんだよね
音楽ってリアルタイム再生だけど、余裕でやれてるわな もしここが PICの限界を究めんと欲すガチPICスレ であるのならば
そして マルチタスクをスタック深度やメモリ空間の限られたPIC8bit系で
いかに実現するか?という問題提起であるのならば面白い話題だろうとは思う。
しかし ゆるゆるお気楽にPICで遊ぼうぜ!というゆるPIC スレで
他のマイコン持ち出してマルチタスクの喧伝という言動に関しては
次のリアクションも致し方ないというものだろう・・・
何 言 っ て ん だ こ い つ
/ ̄ ̄ ̄ ̄\
/;;:: ::;ヽ ,,ト、,, ,,ィ ,ィ
____ . |;;:: ィ●ァ ィ●ァ::;;| _,,-;" '' ゛''" ゛';__
/ \ |;;:: ::;;| .ヽ/""゛゛''`';, ノr´)
/ ⌒ ⌒ \ |;;:: c{ っ ::;;| .,;'゛/__ _ "iヽ;ミ
/ (●) (●) \ |;;:: __ ::;;;| ,,'"|( d /oノ ド゛ `ミ
| 、" ゙)(__人__)" ). ヽ;;:: ー ::;;/ r ";,| ▼ ド゛ `ミ
\ 。` ⌒゚:j´ ,/ j゙~~| \;;:: ::;;/ (`ヽ';ヽ_人__ノ / ,,ミ゛、
__/ \ |__| .|;;:: ::;;| ヽ、 '';,i⌒⌒ / リ ヽ、
| | / , \n||| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|/` ィ'r`''''""´ ,,ミ゛ |
| | / ./ ∩∧__,∧ ♪ ( こ| | |\♪ ∧__,∧∩ .i |
| | | ⌒ーn ヽ( ^ω^ )7 \ (⊆.| | | | i`( ^ω^ )ノ | |
 ̄ \_、 ./`ヽJ ,‐┘ ̄ . | | | ̄ └‐、 ィ^.、 ´ ノ ̄ ̄ ̄ ̄
´`ヽ、_ ノ 二二二lニ|_|___________| ゝ _,r` ,/
. ♪ 彡 `) ). |_|___________| ( (´ ♪ ミ >>149
ディスパッチャ君の事は知ってます
>>137は特定の誰かに向けた書き込みではないです PICにマルチタスクOSを実装する事を考えるよりも
まずは小規模MCUの一般的なソフト構造を勉強するべきだと思うんだけどねえ
全く進歩がないディスパッチャ君 どうも、毎度お騒がせのディスパッチャ君です
「8ビットPICでもマルチタスクを実現してほしい、マルチタスクは役に立つし、
サンプルを見れば分るように簡単に作れるから」
という私の提案は今回も見事に賛同者ゼロで、否定、批難、罵倒の嵐でしたねぇ、
残念・・・w
ところで
アセンブラにifやmacroが無くても、アブソリュートであっても、
「これはアセンブラです」と言えるための最低限の持つべき機能があると思う。
では同じように「これはマルチタスクです」と言える最低限の機能は何か?
寝る前にじっくりと考えてみたい。
追伸:今夜はピラフ、バターチキンカレー、コーンスープ
もう完成しているので、後は盛り付けるだけ タスク優先度
イベント(ISRからセット可)
ミューテックス
タイマー
マルチタスクに対応した標準ライブラリ
マルチタスクに対応したデバッガ
最低限このくらいはほしい 推奨推薦がメリットだけを並べるのは詐欺師と同じ。
現在の普及度を合理的に説明できるだけのデメリットを説明してないと信用できない。 実際使われてないんだからデメリットの方が大きいと考えるのが自然
デメリットはたとえば>>137
ディスパッチャ君はせめて実用的な道具が揃ってから布教しなさい
ディスパッチャだけで布教は無理だよ OS任せでマルチタスクやらせても
何msごとに必ず処理してくれるのかわからんし
それが音楽演奏だったらたった64分音符一つ抜けたり、引き延ばされたりしても致命的ミス
自分でポーリングするなら実行にいくら時間がかかるかまで考慮して実装できるが
OS任せでそこまできめ細やかに指定できないだろう?
ただ最大の優先度っつっても、100秒処理して1秒休みとかの意味で処理されても困るんだよ 恥ずかしいからRTOSをもう少し勉強してから書き込みなさい RTOSでなくマルチタスクOSの話だが?
両者はイコールでも何でもない つってもなぁ・・・マルチタスクを喜ぶ用途がどういうものなのかぼくにはまだピンとこないけど
現状ダイレクトにアクセスしている入出力資源を
いちいちセマフォとか使って排他制御するの
面倒がふえるだけじゃねえん? しらんけど(^p^; >>161
だれもイコールなんて言ってない
いいからまずは勉強しろ リアルタイムを謳わないなら別にコンテクスト切り替えなんて
三十秒に一回でも30分に一回でも 別にいいんじゃね?(はなほじ ^p^; >>159
一つ音符が抜けて死ぬやつはいないだろ。 いくらここがゆるゆるガバガバのゆるPICスレだとはいえ、
タスクディスパッチ頻度が三十年に一度とかだと流石にどうかとは思う・・・しらんけど(^p^; 素朴な疑問で割り込みの途中に割り込みって掛かるの?
だとするとレジスタはSRAMにスタックみたいにして保存して割り込み復帰とかするの?
そうすると多重割り込みになるとRAMの少ない子とかつらくない? >>165
恥ずかしいからもうちょっと勉強してから書けって >>168
石の設計による。
日立のみたいに割り込み自体にレベルがある石もある。
>>169
これから頑張って勉強するのでお勧めのエロ本教えてください(^p^; >>168
「多重割り込み」で検索して
PIC16までは多重割り込み不可
8bit PICは普通のスタックがなく
割り込み時の動作も非常に特殊 時分割スパゲッティを毎回書いてると
めんどくせえからOSでやってくれんかなって思うようになるな >>170
お前の場合はまずシングルスレッドの勉強からだな >>172
流用性を考えないコードだから毎回書かなきゃならないんじゃ?
時分割スパゲッティてのも何だかわからんけど windowsはマルチタスクOSだ
だがアプリ複数立ち上げてまともに動かない