X



トップページ電気・電子
1002コメント428KB
初めてのPIC 0x12
■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2018/09/19(水) 16:56:18.51ID:F4lNkPz3
PICを触り始めて比較的日が浅いという初心者のためのスレです。
もちろん、日は経っているが自分はまだ初心者という方も大歓迎です。
PIC選びやPICを使った回路設計は誰でも最初は不安なものです。
恥ずかしがらずに何でも尋ねてみましょう。
なお、PIC関係のスレにはもう1つ「PIC専用のスレ」があります。

質問・回答する際は…
 必ずPICの型番と開発環境を明記しましょう。
 プログラムはレス内に直接書き込まず以下を利用しましょう。
  http://codepad.org/

その際心がけることは…
 品格に劣る回答者はスルー(相手すると逆効果)
 素人玄人などと上から目線の回答者は無視
 良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
 回答者のアドバイスで後日解決したら結果報告
 回答者は初心者に優しく
 Atmel買収以降アンチによる荒らしも横行してるので見かけても無視
 (特にスレ立て当初はこぞって荒らしに来るのでスルー)


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

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

過去スレ
 0x11 2018/08/05〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1533446166/
 0x10 2018/06/29〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1530265723/
 0x0F 2018/05/01〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1525183933/
 0x0E 2018/02/13〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1518524799/
 0x0D 2017/10/25〜 ttp://rio2016.5ch.net/test/read.cgi/denki/1508935254/
 0x0C 2017/07/27〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1501157324/
 0x0B 2017/05/08〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1494235320/
 0x0A 2017/01/04〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1483498857/
 0x09 2016/09/07〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1473238791/
 0x08 2016/04/30〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1461994030/
 0x07 2016/02/05〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1454648249/
 0x06 2015/07/18〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1437151298/
 0x05 2015/04/07〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1428391368
 0x04 2015/01/02〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1420205108

では、質問どうぞ〜っ
0787774ワット発電中さん
垢版 |
2019/01/31(木) 05:09:51.18ID:H2P5QYVv
あ、正解じゃないですね。パターンとパターンとの間にはもっと大きな静電容量が
寄生することになりますね。すみません、素人で。
0788774ワット発電中さん
垢版 |
2019/01/31(木) 06:22:17.00ID:makpcjZG
>>782
ぜひマスターしてほしいね 人間必要に迫られないと新しいことにはなかなか挑戦しないものだから でもすぐに必要になると思う
例えば…
ウインカーを点滅中にブレーキが踏まれてもブレーキランプが点かない なんておかしいでしょ?
ウインカーの点滅を止めないとその他の動作ができないなんて不便でしょうがないよね
点滅動作にかかりっきりだと他の処理ができなくなっちゃうから割り込みを使ったほうが簡単に実現しやすいんだよ
タイマー割込みじゃなくても状態変化割り込みやメインループを素早く回すためにdelay関数での時間を多くても1/100秒くらいにするとか他の方法もあるけど 
理解しやすくても機能追加していくほどバグを作り込みやすくなるんじゃしょうがないしね まあいろいろやってみて
0789774ワット発電中さん
垢版 |
2019/01/31(木) 13:15:25.32ID:bFTI5tgC
お○こ中におしっこできんのとおんなじか
0793774ワット発電中さん
垢版 |
2019/01/31(木) 16:27:32.59ID:PoJBg+Vv
いいよ。
それくらいの処理なら直接そこに書く方がわかりやすくていい。
0794774ワット発電中さん
垢版 |
2019/01/31(木) 16:49:19.90ID:SrI/q0bL
AVRでLEDごとにタスクを分ければ簡単に実現出来るのに・・・
(当然フルアセンブラで)
もちろんPICのシングルタスクでも実現可能です。
ご苦労さん! & ガンバってね!
0795774ワット発電中さん
垢版 |
2019/01/31(木) 16:52:11.73ID:SrI/q0bL
そう言えば将棋用語に「下手の考え休むに似たり」ってのが有ったなw
0796774ワット発電中さん
垢版 |
2019/01/31(木) 17:40:28.50ID:SrI/q0bL
三流のCPUを使ってると三流の技術しか身につかないのに・・・。
ま、いいか、あえて茨の道を選ぶってこともあるだろうな。
0798774ワット発電中さん
垢版 |
2019/01/31(木) 17:55:19.73ID:kf3hdgNM
>>792
PIC16F1827なんでしょ?
タイマー4つくらいあるよね。
左右で1つずつ使ってもまだ2つある。
0799774ワット発電中さん
垢版 |
2019/01/31(木) 17:58:07.83ID:kf3hdgNM
3つめはPWMで使って点灯パターンをかっこよく作っといて
タイミングは2つのタイマーで取ってPWMのルーティンを呼び出せばいいね。
何か楽しそうだな、おい。
0800模型にLED
垢版 |
2019/02/01(金) 00:58:55.81ID:zeHMqxOU
実際にプログラム組んで下さった方、知識不足で活用出来なくて申し訳ないです…
とりあえず保存して休日にゆっくり試してみます

>>798
フムフム
タイマー機能がいくつか使えるので
ウインカーの点滅リレーとして左右で22つ
ヘッドライトをじわっと点灯とかのパターンもタイマーで作る
それをスイッチ入力で各ピンに出力するプログラムを組む

こういう考え方ですかな?
0802774ワット発電中さん
垢版 |
2019/02/01(金) 08:33:08.13ID:W3SrHkgV
>>769
半角スペースは1個まで。それ以外は全角スペースしか使っちゃだめって小学校で
習わなかった?
0803774ワット発電中さん
垢版 |
2019/02/01(金) 08:45:03.64ID:l8J52RbR
>>724
とても分かりやすいと思うけど。
1つ直すとしたら、
sw=onのあいだ、毎回LED=offしない。
その状態に来る前にonしておくといいね。
0804774ワット発電中さん
垢版 |
2019/02/01(金) 08:52:00.44ID:l8J52RbR
>>769
変数の前についてるwって、何のwなんでしょうか?
ワーク?
0805774ワット発電中さん
垢版 |
2019/02/01(金) 09:04:32.19ID:tOlul5jp
>>803
ちょっと、はしょりましたね。

状態遷移を把握して
あとは、waitループでぐるぐる回すなり、
timer待ち合わせで、処理振り分けするか、
timer割込みで処理するか、
状況において使い分けるということですよ。

Cさえ動けば、picだろうと、avr だろうとほぼ同様のソースになりますね。
0806774ワット発電中さん
垢版 |
2019/02/01(金) 11:36:03.56ID:CixAC5OV
ウィンカーのwじゃねw?知らんけどw
0807774ワット発電中さん
垢版 |
2019/02/01(金) 15:04:10.52ID:EnMaQVyB
>>803
>とても分かりやすいと思うけど。
とても分かりやすい「自画自賛」ですねw

今時、フローチャートでもなく、コード貼るでもなく箇条書きで手順書かれてもねえ…。
0809708
垢版 |
2019/02/01(金) 18:57:55.21ID:hofrAFKp
>>804
ウインカー
回路を見るとウインカーも想定しているようなので、ハザードとウインカーの変数を分離してみた
あとタイマーは中身を理解してもらえそうに無かったので使ってない
0811774ワット発電中さん
垢版 |
2019/02/01(金) 22:02:34.89ID:JCIx+HBn
>>807
アホ
番号そのものが状態遷移なので、
すぐにプログラムが作成できるじやないか。
0812774ワット発電中さん
垢版 |
2019/02/01(金) 22:20:20.55ID:E1sH1oqd
>すぐにプログラムが作成できる
じゃそれ貼れば?
って言ってんだけどなw
0814774ワット発電中さん
垢版 |
2019/02/02(土) 02:50:28.54ID:IDIVw7sD
>>812
ソースを春より、状態遷移図の方が、わかりやすいと思うけど
0815774ワット発電中さん
垢版 |
2019/02/02(土) 03:01:33.10ID:7kKxvanU
>>814
>状態遷移図の方が
確かに「図」ならわかりやすいかもな。
それどこにある?
はよ貼ってください。
0816774ワット発電中さん
垢版 |
2019/02/02(土) 03:31:34.74ID:7jMQP8G7
>>814
何だお前、
>すぐにプログラムが作成できるじやないか。
って言ったの嘘か?
いつまでかかってんだよ、無能か?
で、今度は、
>ースを春より、状態遷移図の方が、わかりやすい
ってか。
コードと図、さっさと両方貼れよ。
お前の「すぐに」は5時間もかかるのかよ、馬鹿なのか?
0817774ワット発電中さん
垢版 |
2019/02/02(土) 03:46:09.09ID:DFG8gK9E
>>809
>あとタイマーは中身を理解してもらえそうに無かったので使ってない
なんか、とても失礼だね、あんた。
自分がタイマー割り込み書けないだけなんじゃないの?
どう見てもコードが泥臭いっていうかカビが生えてそうなんですけどw
0818708
垢版 |
2019/02/02(土) 08:30:22.06ID:nvfT1pVm
>>817
解決の糸口なり、洗礼されたコードを出しているのなら有意義なので何も言いませんが、文句を言いたいだけならただのクソですね
割り込みは当然使える。
本当はチャタリング対策も後回しでいいんじゃないかと思うけど。
0819774ワット発電中さん
垢版 |
2019/02/02(土) 10:25:56.19ID:MNx9pisK
http://codepad.org/az6kV9MR

スイッチの状態管理を別関数でやって、
LEDのon/off状態を確定して、
mainループでは、それを元に、単純点灯かエフェクトつけるか、
もしくは、関数作って外だししてもいいと思います。
0820774ワット発電中さん
垢版 |
2019/02/02(土) 14:59:37.10ID:ACrPXzg/
>>808
>あとタイマーは中身を理解してもらえそうに無かったので使ってない
偉そうだな、無能呼ばわりか、上から、品性低そう。
>>818
>割り込みは当然使える。
>本当はチャタリング対策も後回しでいいんじゃないかと思うけど。
どれどれ、他人をクソ呼ばわりする品性で書いたコード、見してみな。
0822774ワット発電中さん
垢版 |
2019/02/02(土) 16:02:21.61ID:DsKDpZmE
>>819
タイマー割り込み使わない前提だと臭っさいコードになるという典型だねえ。
0823774ワット発電中さん
垢版 |
2019/02/02(土) 16:31:30.86ID:MNx9pisK
>>821

#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

この辺の #include が必要かな。

スイッチのポートとか、LED出力のポートはそっちで決めてね。
0826774ワット発電中さん
垢版 |
2019/02/02(土) 19:53:16.48ID:6KJ/YE5W
MCCでやってみた。
スイッチを押す度に、
右ウインカー点滅、左ウインカー点滅、ハザード(全点滅)、全点灯、前消灯
をトグルで実行する。
MCCでTimer0の500ms間隔の割り込みを作った。
下は自分で書いたり変更した部分だけ。
https://pastebin.com/raw/Za7Xhk02
0827774ワット発電中さん
垢版 |
2019/02/03(日) 02:26:40.92ID:scMqoopy
質問です。

MPLAB X IDE Ver3.xx + XC16 で作ったプログラムを、
MPLAB X IDE Ver4.15 + XC16 で再コンパイルしたら、
ポート設定(TRISやLAT)の部分で、大量のエラーが出ました。
こんなことって、あるのでしょうか?
0828774ワット発電中さん
垢版 |
2019/02/03(日) 02:47:13.04ID:xD/Z/r5/
プロジェクトのチップ名変わってたりはしてないんだよね?
なんだろうな
0831774ワット発電中さん
垢版 |
2019/02/03(日) 13:44:02.24ID:C+/S/U0H
>>827
これは怖い話
俺もver3.15だし

むやみにバージョンアップするなってことか
0833774ワット発電中さん
垢版 |
2019/02/03(日) 15:21:20.97ID:EycvUUhq
PICいいよなー
今arduino pro miniでやってるけど
これ以下にできるのがPIC
一通り揃えてるけどまだやってない・・
今年中にチャレンジしたい
0834774ワット発電中さん
垢版 |
2019/02/03(日) 15:35:07.64ID:EycvUUhq
PICはarduinoと違って型番ごとに設定違うっぽいが
・フランス語
・イタリア語
・ドイツ語
をそれぞれ覚えるくらいめんどうなのかな
かつ「なんとか地方の方言」までついてくるのかなと うーん大変だ
0835774ワット発電中さん
垢版 |
2019/02/03(日) 15:52:32.10ID:zQPRmqWp
Arduinoだってたかだか数種類なのに結構使い方違うでしょ。
PICではこれからはMCCが常識、違いはかなりのレベルまで吸収してくれる。
https://www.microchip.com/mplab/mplab-code-configurator
最低でもMCC対応品を使ってね。
https://www.microchip.com/mymicrochip/filehandler.aspx?ddocname=en607248
https://www.microchip.com/mymicrochip/filehandler.aspx?ddocname=en609037
https://www.microchip.com/mymicrochip/filehandler.aspx?ddocname=en597545
0836774ワット発電中さん
垢版 |
2019/02/03(日) 15:55:53.97ID:xorqBSCH
>>827 は何してる?
まだエラーメッセージの詳細もコンパイラのバージョンも書けないのか。
それともただの荒らしか?
0840826
垢版 |
2019/02/03(日) 21:28:02.68ID:VXTlkivq
PIC32MM0064GPL028でもMCCでやってみた。
LEDは1ずつに減らしたけど。
https://pastebin.com/raw/dDGz3BJP
自分で書く部分はこれだけで、PICが違ってもほとんど同じ。
0841774ワット発電中さん
垢版 |
2019/02/06(水) 14:07:26.18ID:1EvTv2jF
MIFESX(エディタ)でアセンブルプログラム書いて
MPASMでアセンブルして
XIDEにインポートして
PICKIT4を5Vセットして書き込むだけ。
アセンブラはシンプル。動作時間も正確に管理できるし。
突然ウインカー入力が変化したら最初に戻って、スタックをゼロにして・・・
0842774ワット発電中さん
垢版 |
2019/02/06(水) 16:27:50.95ID:1EvTv2jF
ウインカー入力2+ブレーキ入力1で3ビットだから8通りしかない。
8つのパターンテーブル作っておいて入力に応じて選択してジャンプするかデータを吐き出せばよい。
ブレーキ点滅、ウインカ点滅パターンも自在にプログラムできる。
たとえばそれぞれを16行で2秒間にするとか。
0843774ワット発電中さん
垢版 |
2019/02/06(水) 17:48:53.07ID:pRUj94G/
ヘッドライト上(遠)
ヘッドライト下(近)
ヘッドライト・パッシング
スモールランプ
フォグランプ
バックランプ
ウインカー右
ウインカー左
ウィンカー・ハザード
ウインカーのカチカチ音(たとえば小さなリードリレーをオンオフ)
クラクション(例えば圧電ブザー)

輝度調整、流れるウィンカーまで入れるとそりゃもう大騒ぎだな
0845774ワット発電中さん
垢版 |
2019/02/06(水) 21:06:08.82ID:bBekljjD
ID:1EvTv2jF
残念ながら、XC8でという前提の質問なので全く参考になりません。
次からは脳内だけでおやりください、それはあなたの自由です。
ご苦労様でした。
0847774ワット発電中さん
垢版 |
2019/02/07(木) 18:16:33.18ID:/vX6jRmY
>>846
その文字化けっぽいのが気になりますが…。
ファイルをダウンロードしてプロジェクトに読み込んでビルドしてみた限りではエラーは出ません。
MPLABX IDE v5.10
XC8 v2.05
ただし、このサイトを参考にC99->C90は必要でした。
https://neo-sahara.com/wp/2018/08/25/mplab-xc8-compiler-v2-00-%e3%81%a8-mplab-code-configurator-v3-65-%e3%81%a7%e5%89%b2%e3%82%8a%e8%be%bc%e3%81%bf%e5%87%a6%e7%90%86%e3%81%ab%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%ab%e3%82%a8%e3%83%a9/
0849774ワット発電中さん
垢版 |
2019/02/08(金) 03:18:28.47ID:Z1N3tT8m
>>848
IDEとコンパイラのバージョンを書いて。
なぜ回答者が書いてくれてるのに質問者が書かないんだろう。
0852774ワット発電中さん
垢版 |
2019/02/08(金) 09:36:41.40ID:xrIWZg6B
>>850
自分が初心者の頃の心理を告白してんの?w
いやお前は最初から玄人だったよなw
0853774ワット発電中さん
垢版 |
2019/02/08(金) 14:06:38.69ID:eKW2D+53
>>850
で、バージョンを書くと何が露呈するんだろ。

>>851
ならば、>>847のリンク先にあるエラーは出ないはず。
あなたのために自分の環境のバージョンを下げる気はないので、
あなたが最新バージョンにしない限りはバージョンがらみのエラーについては未知数のままです。
バージョンはそのままだとしても、
>ファイルをダウンロードしてプロジェクトに読み込んでビルドしてみた限りではエラーは出ません。
のようにやり直してみてどうでした?
そのサイトのバージョンは2.15、1.32なので普通なら問題無いはず。
0854774ワット発電中さん
垢版 |
2019/02/08(金) 14:11:03.07ID:eKW2D+53
あ、ちなみに、
C99以外は一切変更せず、ビルドして実際にPICに書き込んで、
期待した通りの動作で問題なく動いてます。
0855模型にLED
垢版 |
2019/02/08(金) 17:58:24.09ID:n89aKi6Y
>>853
全く同条件で最初からやり直してみたらうまくいきました
どこかでミスしていたのかもしれないですが原因はわかりませんでした
ちなみにC99という項目は>>848と同じで無いですね

バージョンに関しては一回最新のものではじめたのですが購入した本と同じ動作をしなかったので本と同じバージョンでテストしてます
0857853
垢版 |
2019/02/08(金) 19:21:01.16ID:axfqclxF
>>855
心当たりがあるとすれば、Cleanしなかったからかな、くらいですね。
v2.0の前後を除けば、あまりバージョンを気にした記憶もなく、だいたい最新にしてますね。
Microchipは常に全バージョン入手可能なので…。
0860774ワット発電中さん
垢版 |
2019/02/08(金) 21:56:36.57ID:8RQyuszl
MCCをインストールすると、コメント行の単語にもいちいち赤い下線がひかれて邪魔なのですが、どうすれば消せますか?(16F886使用中なので、現状MCCそのものは使えていない、IDEはv5.10)
MCCを消すのが手っ取り早い?
https://i.imgur.com/muzTsTQ.png
0862774ワット発電中さん
垢版 |
2019/02/08(金) 22:39:53.38ID:W1jDsdh/
>>860
それ、MCCは関係なくスペルチェックなんじゃないでしょうか?
スペルチェックをオフにしたらどうなります?
0863774ワット発電中さん
垢版 |
2019/02/08(金) 22:56:29.25ID:8RQyuszl
>>862
MCCありの状態だと、スペルチェックをオフにすれば消えます。
MCCをPluginsからDeactivateして再起動すると、スペルチェックがオンのままだと表示されず、オフにしたあとオンにしなおすと出てくる、という感じでした。
というかスクロールすると、画面内の位置によって出たり消えたり不安定ですね…

とりあえずスペルチェックはオフのままにします。ありがとうございます。
0864模型にLED
垢版 |
2019/02/08(金) 23:52:01.30ID:n89aKi6Y
>>861
ありがとう
動作変化なしで出来ました
0865774ワット発電中さん
垢版 |
2019/02/09(土) 00:15:01.23ID:W4BS9tfP
>>864
多分、点滅しっぱなしなので次は点滅を止めたいですよね。
^= 1 でなく = 1 なら点きっぱなし = 0 なら消えっぱなしにできます。
あとタイマー割り込みを止めるという手もあります。
この行です。
TMR2IE = 1 ; // タイマー2割込みを許可する
いろいろやってみてまた質問してください。
0867774ワット発電中さん
垢版 |
2019/02/09(土) 16:51:17.28ID:Pa8N6UTA
リレー動かしてるに決まってるだろ坊や
0868774ワット発電中さん
垢版 |
2019/02/09(土) 17:00:46.73ID:7pKQucyp
>>866
映像にも書いてますが、MCCP1のPWMでスピーカーを駆動して鳴らしてます。
音データはプログラム・メモリに書き込んであります。
いまクラクションも準備中w
0870774ワット発電中さん
垢版 |
2019/02/11(月) 15:52:38.70ID:d6hIzFqd
>>869
>今回は「電飾しましょっ!2 PIC編」では触れなかったタイマー割り込みという処理をしています。
とあるから、もう本を見ても参考にならないね。
サイトの記事も、whileのポーリングで検知してるだけだから、限りなく素のタイマーに近い使い方。
0872模型にLED
垢版 |
2019/02/11(月) 18:13:25.40ID:fwc9Rlgi
色んなサイトのプログラムを切り貼りしてなんとか形になりましたがまだやりたい事は達成出来てません
アドバイス頂けたら嬉しいです

http://codepad.org/IaxrCenU
https://i.imgur.com/sraOYrZh.png

出来てない事
・ハザードは時間指定じゃなくてスイッチで点滅維持-停止の切り替えがしたい
・ポジションスイッチを押す度に
消灯 → ポジション → ポジション+ロービーム → ポジション → 消灯
と切り替えたい
・上記が可能になればRB1が空くのでハイビームのパッシングに変更したい
0874774ワット発電中さん
垢版 |
2019/02/12(火) 12:49:18.52ID:6KSf2Bb1
>>872
雑なアドバイスだが、while ループの中で、
スイッチの操作により、現在の状態を表す変数の値のみを変更する。
現在の状態を表す変数の値によってLED の点灯、消灯、点滅の処理をする。
0875774ワット発電中さん
垢版 |
2019/02/12(火) 12:59:59.87ID:Hv1JKHTB
ふとトランジスタアレイ使った方が良いんじゃね?と思った
0876774ワット発電中さん
垢版 |
2019/02/12(火) 18:02:30.18ID:gt+yUVyZ
>>872
>>859>>873を見ればわかるけど、点滅中でも音が鳴っている。
__delay_msを使わずに割り込みでやらないとそうは出来ない。
点滅の処理を関数に書き、割り込みでその関数を呼ぶようにする。
点滅を止めるときは割り込みを禁止にすれば止まる。
他でよほど重い処理をしない限り勝手に点滅していてくれる。
参考にしたサイトが割り込みを生かし切ってないサンプルだから仕方ないけどね。
0877774ワット発電中さん
垢版 |
2019/02/12(火) 19:29:03.70ID:9eZViAbj
>>876
えー?
割り込みから関数呼ぶの?この程度の要求速度で?
しかもPIC8だよね?あなたほんとにPICで割り込み使ったことあるの?
タイマ割り込みでフラグ立ててメインで処理だろ
0878模型にLED
垢版 |
2019/02/12(火) 19:42:21.07ID:Km5c7o+l
>>874
>>876
>>877
ありがとう
でも初心者なので具体的に何をどうすればいいのかちょっと分らないです

>>875
トランジスタの省スペースになるけど点滅回路にはならない?
0879876
垢版 |
2019/02/12(火) 19:56:50.77ID:vVOVwPuP
>>878
>>840にコードがあるから参考に、PICは違うけど考え方は同じ。
>>874>>877の言うことは私にもよくわからない。
>>875は基板作る段階になったら考えればいいこと。
0880774ワット発電中さん
垢版 |
2019/02/12(火) 20:24:13.51ID:TM5VeqME
>>877
それ、僕もその程度の処理で割込み使うかな〜と思っていた。
deley関数使わずに、timerのオーバーフローフラグで、タイミングを取るのは
よくやるよ。
割込みは、通信処理や、LCDの転送処理などにとっておく。
もちろん、Lチカでも、正確なパルス幅で点灯させたいときは、割込み使う。
0881模型にLED
垢版 |
2019/02/12(火) 20:36:47.54ID:Km5c7o+l
>>879
うーん出来るかな?
トライしてみます
0882774ワット発電中さん
垢版 |
2019/02/12(火) 20:51:39.46ID:HHHE0VDv
割り込みは基本だろ
なにも使わなくたって変数カウントアップさせとけ
その変数のbit取り出すだけで何種類もの矩形波が出来る

1024Hz、512Hz、256Hz、128Hz・・・4Hz、2Hzとかだと
2Hzのbitとon信号とandするだけで点滅信号に早変わりだ
サーボの左右、中立位置だって簡単
0883774ワット発電中さん
垢版 |
2019/02/12(火) 21:01:57.64ID:vVOVwPuP
>>880
いろいろよくわからないです。

>timerのオーバーフローフラグで、タイミングを取るのはよくやる
「timerのオーバーフローフラグ」って具体的に何のことで、
実際にはどういう処理をするんですか?

>割込みは、通信処理や、LCDの転送処理などにとっておく。
模型の電飾で通信処理やLCDですか、またずいぶん盛りましたね。
にしても、5つもあるタイマーを使わずに温存する理由にはなってないですね。

>Lチカでも、正確なパルス幅で点灯させたいときは、割込み使う。
割り込み使わなくても不正確になんて出来ませんよね。
これもどういう意味か具体的に教えてください。
0885774ワット発電中さん
垢版 |
2019/02/12(火) 21:57:22.08ID:mjRvREox
>>884
ありうる。
ここで割り込みの話が出たとたんにあちらでもやり出したしw
0886774ワット発電中さん
垢版 |
2019/02/12(火) 22:06:26.76ID:mPmoDWqh
割込は非同期入力に使うことが多いなぁ
キー入力とかインプットキャプチャとか
0887774ワット発電中さん
垢版 |
2019/02/12(火) 22:20:22.67ID:9eZViAbj
>>883
ハードウェアタイマーが満了になったら、ハードウェアが立てるフラグのこと。
そのフラグを見て、例えば1msが100回で0.5sたったら、LEDを点灯消灯するとか、
mainのif分で作る。
その間はLEDは触らない、というようにすれば、残りのCPUパワーをすべて使えるということ

ハードウェアタイマーのフラグでなく、ハードウェタイマーの割り込み処理でソフトで変数を1にして
戻ってきても同じ事

PICの割り込み処理内で多段に関数をコールするとハードウェアの都合で戻って来れなくなる場合もあるので、
不用意に呼ばないほうが良い。

模型の電飾で通信処理は普通に使う。まぁ使うときになるまで考えなくても良い
通信処理と言っても232cなどだけではない。i2cから赤外線までいろいろ
■ このスレッドは過去ログ倉庫に格納されています

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