A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
言語の知識があっても組込み系が初めてならば、いきなり割り込み処理はハードルが高すぎますね。
少なくとも、C言語でこれをどうやって記述するかは、マイコンボードの仕様やコンパイラに依存します。
秋月のキットかなにかをお使いでしょうか?
マイコンのデータシートやキットの仕様書などを熟読された上で、
そのキットのサンプルコードをいくつか入手して、マイコンのレジスタの設定や、割り込みハンドルの仕方など一通り理解しないと、#2さんのせっかくのアドバイスもちんぷんかんぷんなのではないかと思います。
そうでなければ、お使いのボードや、コンパイラ環境などをお書きになると、もう少し具体的なアドバイスがもらえるかも知れません。
まずは、この辺りの資料類を熟読してみてください。
ご参考に。
No.3
- 回答日時:
No2です。
すいません、調べてみるとレジスタへの書き込みは(少なくともHI-TECH Cで)ポインタ演算ではありませんでした。
単純に値の代入でいけます。便利ですね…。
割込みについても参考になりそうなページがありました。
http://technologicaladvance.blog.fc2.com/blog-en …
No.2
- 回答日時:
3通り思いつきます。
1. 回数で指定してループを回す
何回で1秒になるかは現物合わせです。
プログラムはもっとも単純です。
欠点は、ループ内の処理時間が一定でないと使えないことと、繰り返し回数がコンパイラに依存することです。
2. タイマーをポーリング
基本的な流れは、
TMR0を走らせ、ループごとにTMR0の値をチェックし、目標の値を越えていたら終了。
TMR0の設定はOPTIONレジスタに値を書き込むことで行います。TMR0の値をチェックするのはTMR0レジスタから値を読み込むことで行います。
PICのC言語は使ったことが無いので具体的な記述は分かりませんが、ポインタ演算でOPTIONレジスタに値を設定している箇所が既にあるでしょうからそれを参考にしてください。
具体的な設定値はデータシートを見てください。内部クロックで動作、プリスケーラは最大にしておくのが良いでしょう。
なおTMR0は1秒をカウントできませんので、10ミリ秒を100回数えるなどの工夫が必要です。
3. タイマー割込み
一番スマートなやり方です。
TMR0がオーバーフローする際に割り込みを発生させ、一定回数後にループを抜けるという流れです。
C言語での書き方は分かりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# C言語について。 3 2022/11/05 20:30
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pic 複数の割り込み関数 切り分...
-
電車乗車時、並んでいるのに割...
-
マイコンSH-2の割り込みを用い...
-
PICのPIN変化割り込みに...
-
H8マイコンで割り込みが任意の...
-
定周期での割り込み
-
デュアルCPUのパソコンでCPUを1...
-
SH2のタイマ出力
-
VB.NET スレッドからのイベント...
-
AVRのサーボ制御で困っています。
-
電車で待機列の割り込みについ...
-
プログラミング ソースコード
-
Macターミナルで実行中のプログ...
-
バックグラウンドのプロセスの...
-
緯度、経度の 10進法と 60進法...
-
TCP/IP通信時のサーバーからの受信
-
explorer.exeが異様にメモリを食う
-
VBAの配列サイズとメモリに関して
-
DoEvents関数って何?
-
Excelでのセル内容の高速消去方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの処理量を減らすコーデ...
-
pic 複数の割り込み関数 切り分...
-
【組込み】割り込み中のstatic...
-
USJでの割り込み
-
CPU負荷率の安全な上限と計...
-
ウォッチドッグタイマ(WDT)の...
-
電車乗車時、並んでいるのに割...
-
USB機器からのデータ受信による...
-
一定時間操作がなかったら、と...
-
Amazonfireタブレットにわから...
-
マイコン C言語 割り込み処理...
-
PICマイコンでエンコーダパルス...
-
電車で待機列の割り込みについ...
-
駅のトイレでナイチンに邪魔さ...
-
実行した後、どうしてもフリー...
-
電車のドアの前での並び方
-
V.B.6 多重Call用スプール作成...
-
H8マイコンでの割り込み(シリ...
-
VB.net 割り込みの禁止
-
割り込みについて
おすすめ情報