LED点滅プログラムが…。
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 2,055
LEDを点滅させることはできたので回路自体はあっていたみたいなので
割り込みを使用してLEDを点滅させるプログラムを新しく
書いてみたんですけどそれがビルドできなくて良ければアドバイスください。
プログラム
#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
int a,b,c;
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;
c++;
}
}
void interrupt hazime(void){
if(T0IF = 1 && c == 1){
T0IF = 0;
a++;
return;
}
}
void interrupt gp21(void){
if(T0IF = 1 && a == 1){
T0IF = 0;
GP2 = 1;
b++;
a--;
return ;
}
}
void interrupt gp20(void){
if(T0IF = 1 && b == 1){
T0IF = 0;
GP2 = 0;
a++;
b--;
return;
}
}
エラー内容
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Users/CAT/MPLABXProjects/�^�C�}�[.X'
make -f nbproject/Makefile-default.mk dist/default/production/____.X.production.hex
make[2]: Entering directory 'C:/Users/CAT/MPLABXProjects/�^�C�}�[.X'
"C:\Program Files (x86)\Microchip\xc8\v1.33\bin\xc8.exe" --pass1 --chip=12F683 -Q -G --double=24 --float=24 --opt=default,+asm,+asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/default/production/�^�C�}�[.p1 �^�C�}�[.c
"C:\Program Files (x86)\Microchip\xc8\v1.33\bin\xc8.exe" --chip=12F683 -G -mdist/default/production/__.X.production.map --double=24 --float=24 --opt=default,+asm,+asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -odist/default/production/__.X.production.elf build/default/production/�^�C�}�[.p1 build/default/production/so-su.p1
Microchip MPLAB XC8 C Compiler (Free Mode) V1.33
Part Support Version: 1.33 (A)
Copyright (C) 2014 Microchip Technology Inc.
License type: Node Configuration
:: warning: (1273) Omniscient Code Generation not available in Free mode
(908) exit status = 1
�^�C�}�[.c:45: error: (1375) multiple interrupt functions (_gp21 and _hazime) defined for device with only one interrupt vector
make[2]: *** [dist/default/production/____.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
�^�C�}�[.c:54: error: (1375) multiple interrupt functions (_gp20 and _gp21) defined for device with only one interrupt vector
nbproject/Makefile-default.mk:135: recipe for target 'dist/default/production/____.X.production.hex' failed
make[2]: Leaving directory 'C:/Users/CAT/MPLABXProjects/�^�C�}�[.X'
nbproject/Makefile-default.mk:78: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/Users/CAT/MPLABXProjects/�^�C�}�[.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 2s)
?のところは□です。
環境
OS windows 8.1
開発環境 MPLAB X IDE 2.25
ターゲット PIC12F683
書き込み方 PIkit3とブレッドボードで
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+2
error: (1375) multiple interrupt functions (_gp20 and _gp21) defined for device with only one interrupt vector
とあったのでおそらくこのマイコンは割り込みの関数はひとつしか定義できないんだろうなと思って
ググったら確かにそういう記述がありました。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
2015/04/09 15:28
又、エラーの原因はそれだけですか?
2015/04/09 17:44
出来ないからそういうエラーメッセージが返されているのだと思います。
あなたのコード見る限り3つの割り込み関数は
条件式的にどれかひとつしか実行されないのですから
普通にひとつに纏められます。
>又、エラーの原因はそれだけですか?
多分それだけじゃないですか?
先に上げたエラー原因を修正してコンパイルすれば
すぐ分かることを聞くということは
きっと一日一回しかコンパイルできないとか
コンパイルエラーが出るたびに親族に不幸が起こるとか
大変な状況で作業しているんでしょうね。
頑張ってください。
2015/04/09 19:14
頑張ってエラー修正したいと思います。