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

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

ただいまの
回答率

90.40%

  • C

    4803questions

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

  • マイコン

    87questions

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

LED点滅プログラムが…。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,343

CatNet

score 8

この前も質問して、とりあえずソフトウェアタイマーを使って
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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

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

    丁寧に回答ありがとうございました。
    頑張ってエラー修正したいと思います。

    キャンセル

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

  • ただいまの回答率 90.40%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • C

    4803questions

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

  • マイコン

    87questions

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