質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

Q&A

解決済

1回答

4399閲覧

割り込みを使ったLED点滅プログラムで悩んでます。助けてください。

CatNet

総合スコア9

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

0グッド

1クリップ

投稿2015/04/05 04:51

lang

1#include <htc.h> 2__CONFIG(FOSC_EXTRCIO & WDTE_OFF & ^PWRTE_ON& BOREN_OFF & MCLRE_OFF & CP_OFF& IESO_OFF & FCMEN_OFF) 3 4 void main(void){ 5 GIE = 1; 6 T0IE = 0; 7 PSA = 0; 8 PS2 = 1; 9 PS1 = 1; 10 PS0 = 1; 11 TMR0 = 0; 12 TRISIO = 0b00000000; 13 T0IE = 1; 14 15 while(1); 16} 17void interrupt cat_int(void){ 18 if(TMR0){ 19 while(1){ 20 TMR0 = 0; 21 GP2=1; 22 __delay_ms(500); 23 GP2=0; 24 __delay_ms(500); 25 return; 26 } 27 } 28}

このプログラムがビルドできなくて困ってます。
具体的にどこが間違っているのでしょうか。
又、エラーが出た際の対処法というかどこを見れば、わかるよみたいなことを教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

この手の質問をする場合には、
1.開発環境が何か?
OS:Windows であれば、バージョン、エディション
Linux であれば、ディストリビューションとバージョンエディション
IDE(統合開発環境)を使っているのであれば、バージョン、エディション
GNU系、コマンドライン系であれば、GNUxxとか、
コンパイル時のコマンドライン:Make の指定やら
⇒他人が確認する上で、必要な情報です。
2.ターゲットとするMCU:マイコンは何か?
3.ターゲット環境はどうしているのか?
ICEを使っているのか、エバボードを使っているのか、
何らかの既製品であればメーカー、型番やら。自作であれば、自作やら。

>このプログラムがビルドできなくて困ってます。
ビルドエラーの内容も掲示するべきです。
⇒なぜか?
掲示板では、貴方のやっている事は、書かれた事でしかわかりません。
残念ながら、貴方のPCの画面を、隣にいて覗く事は出来ないのです。

投稿2015/04/05 11:50

編集2015/04/05 13:09
daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CatNet

2015/04/06 06:17

遅れてすみません。 えっと、まず、 OSは、Windows8.1 with Bingの最新バージョンで 開発環境はMPLAB X IDE v2.35で ターゲットは、PIC12F683で 書き込み方は、PICkit3でブレッドボードを通して書き込んでます。 えっと、いろいろあってビルドはできるようになりました。 書き換えたプログラムはこれです。 #include<htc.h> #include <xc.h> // CONFIG #pragma config FOSC = INTOSCIO #pragma config WDTE = OFF #pragma config PWRTE = ON #pragma config MCLRE = OFF #pragma config CP = OFF #pragma config CPD = OFF #pragma config BOREN = OFF #pragma config IESO = OFF #pragma config FCMEN = OFF void main(void){ while(1){ GIE = 1; T0IE = 0; T0CS = 0; PSA = 0; PS0 = 1; PS1 = 1; PS2 = 1; TMR0 = 0x00; TRISIO = 0xff; T0IE = 1; } } void interrupt cat(void){ if(T0IF = 1){ T0IF = 0; GP2 = 1; GP2 = 0; return ; } }
CatNet

2015/04/06 06:20

でも、肝心なLEDが点滅しません。プログラム自体は大丈夫なのでしょうか? プログラムが大丈夫なのなら、あとは大丈夫なのですが…。
CatNet

2015/04/06 06:21

もしよければ、回答お願いします。
daive

2015/04/06 07:02

一連の投稿の継続ですね。 初期化が正しいかどうか、プログラムでのレジスタの扱いが正しいかどうかは、 視ていません。 ’ 1.まずは、割り込み無しで、 LEDを点灯させましょう。 なぜか?GPIOの設定、LED+抵抗の接続が正しいかどうか 確認できます。 2.次に、割り込みを使わずに、 LEDを点滅させてみましょう。 3.ここで、割り込みの登場 2.で点滅させた考え方を、 割り込みで行う場合は、どうするのかを 考えましょう。 ’ LEDには、プラスマイナスがあるのは御存じだと思いますが、 マイコンのGPIOは、設定により、 端子に、電圧が出るモードと、電流を吸込側:オープンコレクタのモードが あります。マイコンにより、プルアップ、プルダウンが出来る物もあります。 マイコンは、種類毎に、GPIOの端子に流せる、最大の電流値があります、 これを超えると、異常発熱、ラッチが起こったり、最悪、焼損します。 LEDには、印加する電圧により、適切な抵抗を直列につなぎます。 LEDの抵抗の計算式は、 秋月 抵抗 計算 http://akizukidenshi.com/download/led-r-calc.pdf [LED] LEDと抵抗の計算1/順電圧と順電流 https://sites.google.com/site/mathrax2010led/led/-arduino-ledno などに、解説があります。 最近の高輝度型LEDは、眩しいので、抵抗値は加減してください。 ’ 割り込みのプログラムで、 GP2 = 1; GP2 = 0; としても、 PIC12F683 の様なMCUとても、高速で動作しています。 LEDは点滅しないか、しても、人の目には見えないかも。 ’ 割り込みの考え方。 割り込みのインターバル:周期が十分遅い場合は、 偶数回目:点灯、ON 奇数回目:消灯、OFF という考え方をしたり、 割り込みのインターバルが早い場合は、 100~1000カウント毎に、 点灯、消灯の状態を切替たり。 ’ ICEを使わないでのデバッグ方法は、 1.これは大丈夫、ここは確実という、取っ掛かりを作る。 そして、少しずつ機能を確認しながら追加。 2.コードの修正がある程度まとまったら、無駄、無理の削除、コードの清書 ICEが使える場合は、 1.初期化、IOの状態を、ICEで確認。   手動でポートを叩いて、動作の確認 2.プログラムのステップ実行と、通常実行の使い分け。
daive

2015/04/06 07:06

MPLABには、デバイスシュミレータが有りませんでしたか? シュミレータを使うと、チップ単体相当のデバッグや、 簡単なIOをシュミレーションできる可能性があります。 ICEが無くても、ソースコードデバッグが可能な場合が多いです。
CatNet

2015/04/07 03:22

シミュレーターというのは、頭にありませんでした。試してみます。 >PIC12F683 の様なMCUとても、高速で動作しています。  忘れてました…。確かにこんなプログラムじゃ、見えないですよね。 プログラムも試行錯誤し、シミュレーターも使いながらやってみたいとおもいます。 今回も丁寧にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問