TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
テスト、、、、、 助けてみんな
 秋月電子がTI製品(NS/Burr Brown)の取り扱いを停止
eBay, AliExpress で電子工作関連のお買い物 9
PICよりArduinoのほうが優れている!!
3Dプリンター個人向け@電気・電子板 その41
(´・ω・`)センサー腰でさぐり合うスレ第1代目
【自作】 オリジナルプリント基板製作スレ 18層目
【秋葉原】秋月、千石などを語るスレ56
外見と型番から部品を特定するスレ その4
【代引き】電子部品通販のスレ【送料】 その6

初めてのPIC 0x13


1 :2019/02/15 〜 最終レス :2019/05/28
PIC初心者のためのスレです。
こことは別に「PIC専用のスレ」があります。

質問・回答するときは…
 PICの型番と開発環境を明記しましょう。
 プログラムはレス内に直接書き込まず以下を利用しましょう。
  ttp://codepad.org/
  ttps://pastebin.com/
 解決したら結果報告しましょう。
 Atmel買収以降アンチによる荒らしも横行しているので無視しましょう。
 (特にスレ立て当初はこぞって荒らしに来るのでスルー。)
 質問内容に沿った回答を心がけましょう。
 回答者が勝手に話を膨らませても初心者には迷惑なだけです。
 「PIC専用のスレ」へ誘導した上で思う存分あちらでどうぞ。

必要なソフトなど(無料)
 統合開発環境 MPLAB X ttp://www.microchip.com/mplab/mplab-x-ide
 コンパイラ(XC8 XC16 XC32) ttp://www.microchip.com/mplab/compilers(高機能版のみ有料)
 以下はIDE内からインストールできます。
  コード生成プラグイン(MCC) ttp://www.microchip.com/mplab/mplab-code-configurator
  マイクロチップ・ライブラリ(MLA) ttp://www.microchip.com/mplab/microchip-libraries-for-applications

必要なハードなど
 初心者はPIC16F1以降の型番で始めると無理なく始められます。
 最初からPIC32で始めるのもありで、MCCの利用でハードルはむしろ低いです。
 ttp://akizukidenshi.com/catalog/c/cpic32_ssp/
 プログラムの書き込みには書き込み器が必要です。
 予算に応じてPICkit4、SNAPなどを購入しましょう。
 ttp://akizukidenshi.com/catalog/g/gM-13854/
 eBayやAliExpressで買えるPICkit3の中華クローンも十分な性能が報告されています。
 PIC一覧、スペック検索
  ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005
  ttp://www.microchip.com/maps/microcontroller.aspx

過去スレ
 0x12 2018/09/19〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1537343778/
 0x11 2018/08/05〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1533446166/
 0x10 2018/06/29〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1530265723/
 0x0F 2018/05/01〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1525183933/
 0x0E 2018/02/13〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1518524799/

では、質問どうぞ〜っ

2 :
PICは機種も様々、好みも様々なため、特定の機種をテンプレで紹介すると荒れる原因になります。
そのため、あえてテンプレは書かないことにします。
それでも、以下に「テンプレ風」の書き込みがされると思いますが、
以下に続くレスは個人の勝手な意見でありテンプレではありません。
初心者は惑わされないようご注意ください。
PICの品揃えで定評のある秋月電子通商のサイトでPICを人気順に表示
ttp://akizukidenshi.com/catalog/c/cpicr_spop/
し、通販コード(I-#####)の数字部分の桁数が4桁以上のものから選ぶのが無難です。
もちろん、参考にするサイトや資料で用いられているものと同じものを使うのが好ましいので、
その場合は上の限りではありません。

3 :
できればブラウジングにはJaneStyleなどの専ブラを使いましょう。
「あぼーん」という機能で、荒らしによるレスを見えなくし、
荒らしによる書き込みが無いのと変わらない快適なブラウジングが可能です。
まず荒らしのIDをコピーしてから、
ツール>設定>機能>あぼーん>NGID
貼り付けて、透明あぼーんにチェック入れて、
追加>OK
これできれいさっぱりと消えます。

テンプレ関連の注意書きはここまでです。
最近は、アンチによるテンプレ風でたらめレス、が続く場合が多いので、
これ以降数レス分は内容に注意しましょう。

4 :
>>1


5 :
-_-_--_-----____--_---___--_--__---___-_-__--___-_-_--__-____-_--______-----
-_-_--__--____---_-______-__-__---_---_-___---__-_-__-_--_-_-_-_-_--__--_---
----------__--_--_--_-_-____---___--_-__-_---_-___----________-__-_-_-___-__
_--__-_-_----_-__---____-_--_-__-__---_-__----__-__-___-___-_-____--_---_---
-----__---_-__-_---___--_-__---__-________--_--____--_--_----_____--_---__-_
_-__--___-_-----_-__-__--_--_-_--___--___-____--_---_----_-_-_-_--_--_____-_
-______-------_-__--_-_-_--__--__----__-_--_-__---__---_____---_--_-______-_
-____-___--_--__-__---_-------___-_-_---__-_-_--__-_-_----__-__-_--_____-__-
-_--_--_---_---_----___-_---__-__--_____-__-____--__-_-_---_-__-_---_-__-___
__--___------__--___--___-_-_----_-_--_-__-_-__---_-_____-_-__---__-___---_-
-_-_____________-___--_-_--_-----_-_-_-_-_-_--___--_-__-__--_-_-------_-_---
_-_-_---_----_-_-_-_-_-___--__-----____--_---_____---_-__-_-__-_-_____----__
___-_-----___-_-_-_--_--__-_-_--_---_--__--_---______---_-___---_--_-_-_____
_-_-_-___-_-_---___-_-______--_-__-__-__-_-_--__--__--_---__--------_-_-_-_-
_--__--_--____----_--___-__--________---_-_-_-_--_-__-_----_----____-_-_-_--
___-__-__-__-__--__-_---_-__-_-_-__-__---_-----__--_-__--_-___-____-----_---
-______---_--__----_-__---_--_--____-_-_-_----__--_-_--__-__-_-___-_-__-_-_-
----___-_-____--__--_--_-_-_-_----_-_----___---_-___-___-_-_-__---____-_--__
-------__--___-__--__-___-_-__-__-----___---___-___-_-___--_____----__---_--
-_----_--___---_----_-__--_-_---__--_--_-_--_______-___-___---_-__-__---____
--_---_--_-__---_---_-_--_-___-_-_--____--_-__--__--___--_-_-_-_____---_-___
----__--__-__--_-__-___-_--____--__-----____-__--_-_--_-__---_--___-__---_-_
__---_--__-_-_---_--_---_---_--_---___-__-_______-__-___-_-_-_-_-__-_--_-_--
-_---_____-______-_-_--____-_--_----___-_-___---_---_______-----__---------_
-__-_-_-------__--_--___---__-_-__---_-___-__----____-____-----_-__--____-__
_-_-_--__-_-_-__--_---_-_-_-__-_--_-_-_--_--___----_-_-_-___-___-_-__--__-_-
_-_-_---_-___--__---_____-__--___-__--_-_-_-_-_---_--____-----___-__----__--
___----_--_--_____-__--____-___--_-_-----_-----_-_____-__---_--__-_-___---_-
-_-_-__-----__--_-_-____-----__----____-----_--___-----______-_-__-__-_-____
___-_-___-__--_--__-_--_-__-----_-____--_-_--_-_-__-__-_--__-_--_-__--_-_---
____------__-__-_-_-__-----_-_-___-____-_---_-_-_--__--___--_--__--_-__-_-_-
-----__----______-__-___-_-___----__--_-_----____----__--_-___---_-_-___--__
-___--__-_--_----_-_--_----__-______----_-_-_----__-____-_---__-_---______-_
________-__-__---------_-__--_--_-_-_--___--_-_-___-___--___-_----_---___---
-__-_-___-------__--_-_-_____-___---_-_-__-__-__-__-_-_-__------_-___-__----
__-_------__-___-__-_-_-_----__------__-____-_-__---___-____---_-_---__-__-_
__-_--__--____-___-___-_--_-__-___---_--_____--_-_-----_--__-----__-___-----
--___-----_-_-_-_--_-----_____----_-__--__--_-_-__---________-_--_--_____--_
____---__-____-__------_--_--__-_--_-_-__---_---__-___--_-_-____-__--_---__-
-___-_--__--_-_--_-_--____--------_----___--_--___--___-___-__-_--____-___--
__--__---____---_---_--_---_____--_--_-___-_______-_-_--_-__--___---_---_---
-------__----___--_-__--___-__----_-__-_--___--__-___---__--_-__---__-______
--_-_-______--_--_-__---__-_----_---_-_---__--____---__-_____-------____-___
_------_______-__-__-__--_-____-----_-____-_-_-__-_--__---__-_---__--_--_---
---______-__-___--__--_-___---_-_---__-____---_-_-_---__---__-_-___-------__
___-_--_----_-_-----____-__----_---____-_--_-_--__--_-__--_-__-_-____-__--__
----___-----_____--_---_---__-__-_--___--_-_-_-__-____-__---_____-___--_----
-___-_-_--_--_-_--___---__---_-_-_--_-______---____-_---__--_-___-_-_---__--
-_-_-_-_-__--_-_--_-__--__-__----_-_-_-_-__-_--_-_-_---_----__-__-__-_-_____
--_-_-_-_-__-_---__________----_---_-_-_--------_--________---_-_-_--_-____-

6 :
荒れてるね

7 :
今まで荒れていなかった事は無かったけどな。

8 :
アセンブラってPICの種類が替わるとどうなるの?
PIC10でも12でも16でも24でも32でも同じなの?
CでMCCならほとんど違いを意識しないんだけど、
そのあたりどうなんでしょう?
詳しい方、教えてください。

9 :
test

10 :
データーシートに出ているので、一度見てみてください。

11 :
>>8
pic10-18までは、命令は、基本一緒だけど、間接レジスタが強化されていたり、
I/O、機能が強化されていたりする。

変数メモリ用のRAMが増えると、バンク切り替えでアクセスする。
プログラムメモリ用のROMが増えると、ページ切り替えでジャンプするとか、
面倒な手続きが必要。
Cコンパイラは、そこらへんの手続きをやってくれる。
xcの、asm出力リストみて比べればいいと思います。

https://maku77.github.io/memo/pic/asm/bank.html

12 :
前スレの >>959 筋金入りの荒らし、真正のAVR厨、掃き溜めのゴキブリ ですw
日曜日なので製作途中のプログラムの残りを作った。
プログラム・サイズを短くするために、分かりやすくするために、
あえて手を抜いているところがある。
たとえば、ディレイが1種類だけ、「じわっと」点灯・消灯が8段階、一部ラベルを使わないなど。
ウィンカーのカチカチ音はウィンカー出力からダイオード2本のOR回路(とトランジスタ)で
リレーをオンオフすればよい。
クラクションは丁寧に作るなら録再ICで実車の音を録音して再生を。
手を抜くなら圧電ブザーで。

Task1;クラクション?、Task2;バックランプ?、Task3;ウインカー#1、Task4;ウインカー#2
Task5;ハザード、Task6;フォグランプ?、Task7;ヘッドライト、Task8;パッシング
PICでもPIC18以上なら実現できると思う(多分。トライしたことは無い)

ディスパッチャ内に「じわっと」用処理を追加した。
;===== timer0_CompA:1mS for dispatch ==
; execut time typ. 2.5uS at 8MHz system clock
IRQ13:
; save YH,ZL,ZH & SREG to current stack
 push YH
 push ZL
 push ZH
 in  ZL,SREG
 push ZL
;
; exchange SP with next task
 in  ZL,SPL ;save current SPL to buffer
 st  X+,ZL
 andi XL,7 ;pointer limited 0-7
 ld  ZL,X ;load next SPL from buffer
 out  SPL,ZL
;
 cpi  r16,0 ;for gradual LED ON/OFF at Task7
 breq IRQ13_T7
 dec  r16
 brne IRQ13_T7
 sbi PinD,_LED6 ;toggle LED6 ON/OFF
IRQ13_T7:
;
; restore YH,ZL,ZH & SREG from next stack
IRQ13_ret:
 pop ZL
 out SREG,ZL
 pop ZH
 pop ZL
 pop YH
 reti
; 1/3

13 :
タスク4、5、6
;SW4を押すとLED4が点滅〜(離す)〜押すと消灯〜(離す)
Task4: ;(ウインカー#2)
 sbic PinB,_SW4  ;SW4 OFF ?
 rjmp Task4    ;Yes, then wait
Task41:
 sbi  PinB,_LED4 ;No, then toggle LED4 ON/OFF
 rcall Delay_05S  ;while 0.5Sec
 sbic  PinB,_SW4  ;SW4 OFF ?
 rjmp  Task41 ;Yes, then toggle again
 sbi  PortB,_LED4 ;LED4 OFF
 rcall Delay_05S  ;delay for chatter
 rjmp  Task4
;
;SW5を押すとLED3とLED4が点滅〜(離す)〜押すと消灯〜(離す)
Task5: ;(ハザード)
 sbic PinD,_SW5 ;SW5 OFF ?
 rjmp Task5   ;Yes, then wait
Task51:
 sbi  PinB,_LED3 ;No, then toggle LED3 & LED4 ON/OFF
 sbi  PinB,_LED4
 rcall Delay_05S  ;hold 0.5Sec
 sbic  PinD,_SW5  ;SW5 OFF ?
 rjmp  Task51   ;Yes, then toggle again
 sbi  PortB,_LED3 ;LED3 & LED4 OFF
 sbi  PortB,_LED4
 rcall Delay_05S  ;delay for chatter
 rjmp  Task5
;
;SW6を押すとLED5が点灯〜(離す)〜押すと消灯〜(離す)
Task6: ;(フォグランプ?)
 sbic PinD,_SW6  ;SW6 OFF ?
 rjmp Task6    ;Yes, then wait
 sbi  PinD,_LED5  ;No, then toggle LED5 ON/OFF
 rcall Delay_05S  ;delay 0.5Sec for chatter
 rjmp  Task6
; 2/3

14 :
タスク7、8
;SW7を押すとLED6がジワッと点灯〜(離す)
;  〜押すとジワッと消灯〜(離す)
Task7: ;(ヘッドライト)
 sbic PinD,_SW7 ;SW7 OFF ?
 rjmp Task7   ;Yes, then wait
 ldi  r18,1
Task7r18:
 ldi  17,8
Task7r17:
 mov  r16,r18
 sbi  PinD,_LED6 ;toggle LED6 ON/OFF
Task7r16:
 cpi  r16,0
 brne Task7r16  ;wait a period end
 dec  r17
 brne Task7r17  ;while 64mS
 inc  r18
 cpi  r18,9
 brne Task7r18  ;while 8*64mS
 sbi  PinD,_LED6 ;toggle LED6 ON/OFF
 rjmp Task7
;
;SW8を押すとLED6が3回点滅〜(離す)
Task8: ;(パッシング)
 sbic  PinD,_SW8 ;SW8 OFF ?
 rjmp  Task8   ;Yes, then wait
 rcall Task81
 rcall task81
 rcall task81
 rjmp  Task8
;
Task81:
 sbi  PinD,_LED6 ;No, then toggle LED6 ON/OFF
 rcall Delay_05S  ;hold 0.5Sec
 sbi  PinD,_LED6 ;No, then LED3 & LED6 toggle ON/OFF
 rjmp  Delay_05S  ;hold 0.5Sec
; 3/3

15 :
>>11
>pic10-18までは、
ってことはそれ以降はまた大きく違うってことでしょうか。
24と32の間で全然違いそうですが…。

こういう内容の問いにも>>10のような返答じゃ先は無いですね。
やっぱCにします。
ありがとうございました。

16 :
前スレでPICだけでカチカチやってた人いたじゃん。
それを踏まえてなお、音のためにリレーつなげってか、程度低いなw

17 :
あ、すまん、基地外だったか。
どうしよう、触っちまったぜw

18 :
>>15
俺も >>10 のような回答をしようと思ったが、
どう回答しようがアセンブラをやる気を全く
感じられなかったので放置したよ。

19 :
>アセンブラをやる気を全く感じられなかった
へえ、どのへんが?

20 :
何も調べず丸投げ質問してくるへんが

21 :
>>8の質問は、あえて低級言語を使う意味を問う質問だからな。
アセンブラ使いには頭の痛い話で、回答の仕方によって人間性が出るのは致し方ない。
根性論振りかざすアセンブラ厨には>>10の回答でお茶を濁すことしかできない。

22 :
ほらね>>20

23 :
>>16
PIC32 + MMC で音まで鳴らしてるっちゅうに
機種は違うにしても、アセンブラ厨は今時音のためだけに実物リレーを、ってんだから
言語対決そのものが勝負にすらなってないよね

そのうちPIC陣営アセンブラ隊が大逆転のコード引っ提げて登場するんだろうけどさ、きっとw

24 :
趣味のアセンブラ厨は趣味の渓流釣りみたいなもんだろ。
渓流釣りの話をすると、カツオでもマグロでも自分で釣って
くるって話しに拡大解釈する人って変だと思う。

25 :
>>24
なるほど、>>8の質問をそこまで拡大解釈して心に刺しちゃったのねw
確かに時々ぐうの音も出ない図星な質問するよね初心者や子供って。
でも、それを突き放すのは大人げないし、アセンブラ厨の余裕の無さの裏返しにしか見えなくてがっかり。

26 :
イヤミだけかよ

27 :
>>26
あんたみたいなレスに対して、他に何を返せと?

28 :
イヤミだけのようなレスは返さなくて良い、と言っている

29 :
ただいまレスの内容に応じたレスを返させていただいております。
悪しからず、少しは知恵のあるところをお見せください。

30 :
そだねー

31 :


32 :
>>12 模型自動車のライト
AVRはこういうSWとLチカのようなDI/O制御が短い命令数で簡単に書ける。
おまけに初心者入門用のtiny2313でマルチタスク動かせるし、
アンタは偉いっ!
PICユーザーの皆さん、しょせん無い袖は振れません。
転向するなら早いほうがいいですよ。
「過ちて改めざる是を過ちと謂う」じゃないですかw

33 :
>>32
転向するならARMだな。AVRは無い。
そういうばかなこと言ってるから吸収されるんだよ。

34 :
もしもどうしても8ビットPICでやりたいなら、
PLC(シーケンサー)はリアルタイム処理なので、
PLCのシュミレータをPICに実装して、
PLC用のSWとLEDの制御プログラムを作って実行する、
という手法も考えられる。
もっともたった今思いついただけで、実用になるかどうかは全く分らない。
・・・う〜ん、ダメかな?

35 :
>>32
巣から出てくんなや

36 :
訂正 : シミュレーター

>>35
啓蟄まだかw

37 :
>>ID:y/e1PqW5
PICスレ的には前スレのこれで完了してるわけ。
https://www.youtube.com/watch?v=-IYtWuglJLU
これを超えたらまた来てね。

38 :
>>34
連枝というものがあってだな・・・

39 :
模型の自動車のライト。
お題にとおりの、PIC16F1827 つかって、書いてみました。
簡単なテストしかしていないのと、少しだけ清書したけど、
その後、通電テストしなかったので、動かないかもしれません。

割り込みを使わず、TIMER2をベースにしています。
各ライトの明るさの設定が可能です。


http://codepad.org/qhNsvCM5

40 :
>>39
横からですが、とても参考になるソース、ありがとうございました。

前回からのSW変化を検出して反映する部分ですが、
僕の書き方は、こんな感じですが、どうでしょうか↓
ttps://imgur.com/a/DDIHfkT
教科書通りの改行だと縦に長くて動作がわかりにくいので、
差分がわるように体裁を変えています。
また変数が長くて、パッと見に各行の差がわかりにくいので、
変数を短くした方が良いと思います。
いかがでしょうか。

HIBEAM_xxxxを、HB_xx と省略せずに HIBEAMと表記するのは大賛成です。
わかりやすいから

41 :
>>39
点滅してるところの動画もよろしくお願いします。

42 :
ついでにジワッと点灯、ジワッと消灯もよろしくお願いします。

43 :
自動車のライトはジワッとなんか点灯せんやろ。

44 :
>>43
そうだな、 前スレ >>529 の仕様をチェックしたら、「光度の違いも出したい」とだけ書いてあり、
「ジワッと」なんて書いてない。

フト思ったのだが、
前スレ >>517 でテーマを提供して「プログラミングそのものが初めてなので」と書いている人物と、
プログラムをアップした >>39 は同一人物なのかな。
そうだとしても別に構わないけど、とにかく同一テーマで500レス以上続くのはスゴイ。

45 :
車のルームランプなんかはジワッと点灯ジワッと消灯するよん

46 :
>>39
割り込み禁止のお達しでも出てるの?
無理に割り込みとかを使わずに済まそうとしてるからこんな冗長なコードになってるんじゃない?
PIC16F84Aあたりを使ってた頃の昔のコーディングのままで頭の中止まってない?
なんかちょっと理解に苦しむんだけど、そう思うのは私だけ?

47 :
入力変化はやたら割り込みを使いたがるけどタイマー割り込みは避ける傾向があるね。
タイマー割り込み使ってステートマシンを作れるかどうかが組み込みプログラムの
一つの壁だと思う。

48 :
>PIC16F84Aあたりを使ってた頃の
>入力変化はやたら割り込みを使いたがるけどタイマー割り込みは避ける傾向
84Aとか触ったこともなかったけど、データシートを見てみたらまさにその通りで笑った
見事に思考が硬直していて>>39のコードで1827である必要が全くないのはお見事

PIC32 + MCC な俺は前スレからずっと高みの見物中

49 :
なになに、ちょっと割り込みをバリバリ使ったソースに直してワシになみせとくれよ

50 :
どんな華麗なコードでも突っ込まれてウザい気持ちするだけ

51 :
組み込みのコードなんて動けば内容なんてどうでもよくね?
どうせ使い捨てコードなんだし。

タイマー割り込み無くてもできるなら、使う必要無くね?
どうせエレガントな構造にしたところで誰も見やしないし、動きは大して変わらんのだろうし、さっさと終わらせて次のことやったほうが賢い。
人生は短い。

52 :
じゃ、ウインカー、車幅灯だけ。
適当なタイマー割り込みからblink();を呼ぶ。
15〜18ピンにLED、11ピンにSW。
https://pastebin.com/raw/njkn4tSP
MCCが吐いたコードは省略。

53 :
>>52
ビルドできない断片コード載せてドヤられても・・・

54 :
>>53
あなたのMCCも、私のMCCも、きっと同じコードを吐きます。
ぜひお試しください。

55 :
>>39
ありがとうございます!!
前スレの「模型にLED」のコテでお世話になった者です
https://rio2016.2ch.sc/test/read.cgi/denki/1537343778/517

結局タイマーを組み込んだ物を自分なりにがんばってみましたが
勉強不足、知識不足、経験不足でボード上で動くものが出来ませんでした

最後に自分で作ったこれで回路を作って、完成後でもKIT3接続出来るように5ピンコネクタを外に出せるようにしました
https://rio2016.2ch.sc/test/read.cgi/denki/1537343778/872

頂いたコードで試して結果が出たらご報告させて頂きます

56 :
>>55
・ポジションスイッチを押す度に
消灯 → ポジション → ポジション+ロービーム → ポジション → 消灯

これは、実装してないです。

消灯の時には、ボタンを押してその後離したときに、消灯に遷移させますので、

専用の、updateSWState2 を作ったほうがよさそうですね。

気が向いたら、修正してみます。

57 :
>>52
>適当なタイマー割り込みからblink();を呼ぶ。
もう少し具体的に教えてください。
検索して出てきたのをまねして、TMR0の割り込みの設定まではたどり着けてると思います。

58 :
IDE v5.10 XC8 v1.42で書き込み、点灯成功しました!!!!
正直どこがどうなってるのかさっぱり分からないですが85-88で明るさ変更可能って事ですかね?
頼りっぱなしで申し訳ないですがポジションスイッチ修正も楽しみにお待ちしてます
本当にありがとうございました

59 :
>>57
mcc_generated_files の中の tmr0.c に TMR0_CallBack って関数が出来てる。
そこに blink(); を追加する。
あと、 tmr0.h に void blink(void); を追加する。

60 :
カチカチ音とクラクションを別出力にして完成です。
https://www.youtube.com/watch?v=H9hPwb9EukY
ウインカー点滅、ハザード点滅、車幅灯の点灯と消灯、ヘッドライトの消灯、通常、ハイビーム、
警笛、警笛長鳴らし、点滅音、一応全部組み込めました、LEDが全部赤ですがw
そもそも組み込む模型が無いのでこれで終了ですが、PIC32 + MMC はおすすめです。

61 :
割り込みを使わず手作業
http://codepad.org/qhNsvCM5
割り込みを使ってMCC利用
https://pastebin.com/raw/njkn4tSP

書いた行数の差10倍、そして手作業の方は何やってるか当人以外意味不明
何だ、この雲泥の差はw

62 :
動けばいいのはある意味事実だと思うが
>>53みたいなレスする人間が書いたコードは動いても信用できない
押さえるべきところがわかってなさそうで不安になる

63 :
ていうかさ、

>動けば内容なんてどうでもよくね?
>動きは大して変わらんのだろうし
>さっさと終わらせて次のことやったほうが
その通りなのでタイマー割り込みを使います。

って思ったな。
どう考えても、ID:U4jiRSRkは割り込み使えない人の遠吠え。

64 :
なあ、>>39のコードは模型さんのご要望のうちの何と何が実現してるわけ?
動画出してって言っても出してくんないし、自分で回路んだり書き込んだりする気もないので誰か教えて。

65 :
>自分で回路んだり書き込んだりする気もないので
タヒねや

66 :
>>64
それ教わってどうなる?
あのコードじゃ何の足しにもならんのは目に見えてるだろw

>>65
あらあら、何にご立腹?
それが普通じゃん。
あんた回路組んで書き込んでみたん?
あ、ご本人か。

67 :
>>59
動きました、ありがとうございました。
コツさえわかれば、MCCは楽ちんですねえ。
>>52を見たときは、たったあんだけでいったい何ができるって疑いましたが、
まさか、自動でこんなにたくさんコードを書いてくれるとは思ってませんでした。

68 :
>>65
AVR工作員さんごくろうさんです

69 :
マルチタスクはシンプルだと思うけどな。
関係の無いSWやLEDは一切無視して、その処理に必要なSWとLEDの処理だけを書けば良いのだから。

たとえばハザードの処理は以下になるが、Lチカを始めたばかりの初心者でも
やっていることは容易に理解できると思う。
Task5:
 sbic PinD,_SW5   ;SW5は押されたか?
 rjmp  Task5     ;いいえ
Task51:
 sbi  PinB,_LED3  ;はい、LED3とLEDの点灯・消灯を反転 する
 sbi  PinB,_LED4
 rcall Delay_05S  ;0.5秒デレィ
 sbic  PinD,_SW5  ;SW5は押されたか?
 rjmp  Task51    ;いいえ、Task51へ戻って繰り返す
 sbi  PortB,_LED3 ;LED3とLED4を消灯
 sbi  PortB,_LED4
 rcall Delay_05S  ;チャタ除去用0.5秒ディレイ
 rjmp  Task5    ;始めに戻る
このようなタスクを必要なだけ(SWの数だけ)並べればプログラムは完成する。
(ディッスパッチャとセットップを別にして)

ところで、マルチタスクで書けるものはシングルタスクで書ける。、
8ビットPIC用のプログラムをフルアセンブラ+マルチタスクで書けない人は
たとえ時間が掛かっても処理が複雑になっても、C+シングルタスクで書くしか手段が無いけど、
蓼食う虫も好き好き。
               以上、AVR工作員より

70 :
>>69
巣から出てくんな

71 :
>>69
ユーザー側から見て複数のタスクが同時進行で実行されているように見えりゃマルチタスクでしょ?
コードの上でマルチタスクとシングルタスクの違いってどんなんです?
簡単な例で見せてくれませんか?
フローチャートみたいなものでも構いません。
よろしくお願いします。

72 :
あ、今回の模型の電飾の例でお願いします。

73 :
私もマイコンでのマルチタスクってのが良わからないので教えてください。
ちょうど>>60に動画があがってるから聞くけど、
ああいう風にLEDが点滅するのと同時にブザーが鳴ってるってのはマルチタスク?

74 :
>>69に質問です。

75 :
メモリ上に互いに独立したメインプログラム(タスク)が複数個あって、
(例えば >>13>>14 のタスク4、5、6、7、8のように)
それらが並列して(もちろん擬似的にですが)実行されるならマルチタスクです。

大きな役割を果たすのが、各タスクの実行を定期的に切り替える、
タイマ割込みを使用したディスパッチャです。
ディスパッチャ >>12 timer0_CompA:1mS for dispatch の割込み処理実行前と後で、
スタックポインタとスタックメモリの内容がどのように変わるかを紙に書けば、
そのタスク切り替え手順が理解していただけると思います。
ここでは8MHzのCPUを8分割しているので、1MHzのCPUを8個実装しているといっても
過言では無いと・・・はちょっとズレているかなw

切り替えのしくみを理解すれば、同様なアリゴリズムを他のほとんどのCPUに実装出来ます。
小さなCPUではRAMが少ないので制限も増え、
プログラム設計時に切り替え手順を考慮するなど、検討が色々と必要になりますが、
ポーリングが多くなるようなプログラムでは、処理がとてもシンプルになる場合があります。
この技法は昔から存在するありふれたもので、とくに難しいものでもありません。
マスターしておいても損にはならないと思います。

たとえシングルタスクだろうと、マルチタスクだろうと、
(前にも書きましたがマルチタスクで書けるプログラムはシングルタスクでも書けます)
これらは仕様を実現するための手段であり、
どちらであっても実行結果は仕様(たとえばLEDが点滅するのと同時にブザーが鳴ってる)を
満たす必要があります。
(長文、申し訳ありません)

76 :
>>75
アセンブラもAVRも知りませんが、
仮にPICでCで書いて、タイマー割り込みで順に複数の関数を呼ぶならマルチタスクと同じことですか?
それをタスクとかマルチタスクとか呼んでるだけ?

77 :
>>75
難しくてわからないな。
例えば、
RA0のLEDを5Hzで点滅させ、同時にRA1のLEDを2Hzで点滅させる。
をマルチタスクとマルチタスクでないのとでコードにして見せてください。
できれば、今の流れ的にはPIC16F1827、XC8だとありがたいです。

78 :
ここの人はみなさんMCCは使わないの?
そういう私も使い始めたのはつい最近だけど、超便利。
>>52のコードをもとにしたプロジェクトです。
https://www.dropbox.com/s/e3qsenzngcjmn07/project.zip
コンパイラの場所だけ聞かれるかも。
>>52さん、まずかったら消すから言ってね。

79 :
Lチカのコードを写経して喜んでいる程度の我々Cへの不信心の初心者が、
いきなりMCCをさわって何やら仏罰が下されないものでしょうか。

80 :
>>78
もう無い、欲しい。

>>79
好きにしろよ。
>何人も、宗教上の行為、祝典、儀式又は行事に参加することを強制されない。

81 :
>>52
>>78

ありがとです
やり方が分からないので試せてないです

82 :
>>79
マジレスすると、一度データシートだけでやってみて、
出来るようになったら、同じことをMCCでやってみて、それからMCCを使うかどうかを決める。
私の解釈ではMCCはデータシートの代わり、補助、バグもある。
ただ、使いだしたらデータシートはほとんど見なくても済む。

>>80
https://www.dropbox.com/s/libdkpk4geueq57/project.zip
うちの環境でも動いたし、模型さんのお題は9割がたクリアしてる。
タイマーの設定とかの趣味がこの人と私とは違うけどw
ちなみに、プロジェクトを実行するだけならMCCは必要ない。
あくまでも Code Configurator だからね。

83 :
>>82
ご回答ありがとうございます。なかなか遠い道のりのようですが、精進したいと
思います。難しいのは、要求される仕様とMCUの個別の特性からプログラムの構造を
決定する力量と、C言語に対する細かな部分まで達する基礎的素養と感じています。

深い思考と反復の上にもたらされた感覚的な何か、その何かが決定的に不足している
身としては、多くの先達の残したものを、注意深く粘り強く当たるしかない、と感じます。

84 :
あ、そ
がんばりな

85 :
>>81
https://www.dropbox.com/s/libdkpk4geueq57/project.zip
をダウンロードしてきて解凍し、MPLABX IDEのプロジェクトを開くから project.X を開く。
ビルドしてPIC16F1827に書き込む。
mainは
https://pastebin.com/raw/njkn4tSP
のままだから、どこに何がつなげてあるかは自分で確認、変更して。
分からないことあったらまた聞いて。

86 :
>>85
IDE V5.10 XC8 V1.45でビルド出来ずエラーが出ます
原因分かりますでしょうか?
https://i.imgur.com/jRk4ylY.png

87 :
>>86
プロジェクト名を右クリックからプロパティーを開いて
コンパイラーを指定し直してください。

88 :
>>87
おお、できました〜!
ピンの指定とか確認してみます

89 :
MCCは楽ですね。AD・DA(PWM)を使った実装でしたが、
AD・DAのハード操作は1行の書かず、MCCが生成した関数を呼ぶだけで出来てしまいました。
これってPICの石を代えても、ソフトはそのまま移行できそう。
一定間隔でAD、DAしながらキー操作も受付る仕様だったんですが、
タイマー割り込みつかった、所謂巡回処理で簡単に出来ちゃいました。
シミレータもあるのでハードが上がってなくてもデバッグできるし、
納期1か月だったんですが1週間で仕上がってしまった。

90 :
>>88
そうですか。
それで、あなたの望んでいる機能は達成できそうですか?
>>39>>52との比較はどうですか?
回答をもらったら、事後報告、状況報告をしましょう。

91 :
>>90
ビルド出来ただけでまだ回路を作ってないのでまだ解らないですね

92 :
>まだ回路を作ってない
は?
今まで何やってたん?
ブレッドボード買ったとか言って写真貼ってた人とは別人?

93 :
>>92
>>39は回路作成済み
今回のはまだ

94 :
>>93
ああ、回路が違うのね。
ちなみに>>39ってどういう機能が実現されてんの?

95 :
>>94
ウインカーハザードが点滅中でもライト類のON-OFFが可能
各LEDの光量調整が可能

96 :
>>95
ふうん。
ライト類はONかOFFだけなら簡単だね。
LEDの調光はスイッチ押すと明るさが変化するとかなの?

97 :
>>96
コード読めよ

98 :
そういうのを時間の無駄という。

99 :
>>98
確かになあ。
>>52は見てすぐに何やってるかわかる。
それに比べて>>39ときたら、Cが高級言語だということを忘れさせてくれるw

ま、>>97の解説を待つとしますか。

100 :
>>85
ウインカースイッチ操作の方法が望んでいるのと違いますね
現在はスイッチを押すたびに(●消灯◯点灯)

●●●●
●●〇〇点滅
〇〇●●点滅
〇〇〇〇点滅
〇〇〇〇点灯
●●●●

という切り替え式になっている

これはヘッドライトの
消灯 → ポジション → ポジション+ロービーム → ポジション → 消灯
に使いたい切り替え方式ですね
出来るか試してみます


100〜のスレッドの続きを読む
ハンダ作業について語るスレ No13
尖閣レーダー照射に対抗する技術
電波時計-JJYについてあれこれ語るスレ
ブレッドボード
アンプを語ろう〜良い音って何だ〜
LM/NJM386を使い倒せ。
アッテネータは和製めちゃくちゃ語
スイッチング電源 6台目
PIC専用のスレ Part48
雑談すれ
--------------------
【TOYOTA】カローラスポーツ Part34【COROLLA】
【買うだけ】既製品だけで満足な人いますか?
【DQR】ドラゴンクエスト ライバルズ LV.586
ミニ四駆 初心者が質問して中・上級者が答えるスレ44
■□■□チラシの裏16749枚目□■□■
【Juice=Juice】工藤由愛ちゃん松永里愛ちゃんを仲良く応援するスレPart15【愛愛4期】
【徹底検証】ハルク・ホーガンVSブルーザー・ブロディ【徹底比較】 Part.2
THE夜もヒッパレ
ハロプロ史上一番の不良グループって℃-uteであってる?
【売れない?改悪?】正直、ヤフオク疲れたスレ70
●祝2015年夏!在日チ ョ ン強制送還ラッシュ開始● 3年前の話です(笑)
【A.V.A】Alliance of Valiant Arms SD7.80【AVA】
【PCゲーム】マイクロソフト、Steamでしか買わないお前らに痺れを切らし、5タイトルをSteamにリリース!Steam信者歓喜へ [316962299]
☆STAX&VOLT★
【東京都】主催イベントの中止や延期、来月12日まで延長で調整 小池知事が方針 3/23新型コロナ
アイスタ!とプリパラ比較スレ
【画像】美人体操選手、おっぱいがデカすぎる
またまただまされて社説板まで跳ばされて来た訳だが
【芸人】かまいたち、「しくじり先生」オファーに「メディアからそう思われてるのはヤバい」
ゲームレコードGP round8 re:charge
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼