(補足させて頂きます)
どうしてもビルドが出来ず、もう一度最初からmainページを作成し、改めて、コードを入力したあと、ビルドした際、エラー構文の所の青いリンクをクリックした所、添付イメージの様な質問窓が表示されました。YES、noを選択するようになっていますが、これは、今回のビルド出来ない原因の一つになっているのでしょうか?
YES、noともクリックしてみたのですが、状況は変わらず、ビルド出来ないままです。
これも踏まえた上で、ご回答、お待ち申し上げております。
どうぞよろしくお願い致します。
(ここから本題の質問です)
USART通信プログラムについて質問させて下さい。
PIC(PIC16F1938)を使用して、市販されている音声認識モジュール(マイクロテクニカ製 SR-MOD100C URL:http://www.microtechnica-shop.jp/shopdetail/000000000005/)を操作したく、MPLAB_X IDE & XC8コンパイラを使ってプログラム作成しているのですが、ビルドが出来ないで困っています。
下記プログラムは、以前作成した自作プログラム(TX送信にてMP3プレーヤーを再生させるだけのプログラム)を流用して、送受信できるように直しているものです。
なんとか独学にて作成してきましたが、送受信プログラムは初めてで、なかなか上手くできません。
具体的に下記のプログラムをビルドさせるとエラーが発生します。
エラー文は、
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
nbproject/Makefile-default.mk:105: *** missing separator. Stop.
make[1]: Entering directory 'E:/SRS.X'
make: *** [.build-impl] Error 2
make[1]: Leaving directory 'E:/SRS.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
BUILD FAILED (exit value 2, total time: 57ms)
と表示されます。
なぜ、このプログラムでは、ビルドが出来ないのでしょうか?
色々調べてみたのですが、全く分からず、このサイトを最後の頼みの綱として、質問させて頂いた次第です。
具体的に下記のプログラムの何処をどの様に修正すれば、ビルドができるのでしょうか?
すいませんが、ご教示の方、どうぞよろしくお願い致します。
C
1 2//【 ヘッダ設定 】 3#include <stdio.h> 4#include <stdlib.h> 5#include <stdbool.h> 6#include <xc.h> 7#include <htc.h> 8 9// 【 PIC16F1938 Configuration Bit Settings 】 10// コンフィギュレーション1の設定 11#pragma config FOSC = INTOSC // 内部クロックを使用する(INTOSC) 12#pragma config WDTE = OFF // ウオッチドッグタイマー無し(OFF) 13#pragma config PWRTE = ON // 電源ONから64ms後にプログラムを開始する(ON) 14#pragma config MCLRE = OFF // 外部リセット信号は使用せずにデジタル入力(RA5)ピンとする(OFF) 15#pragma config CP = OFF // プログラムメモリーを保護しない(OFF) 16#pragma config CPD = OFF // データメモリーを保護しない(OFF) 17#pragma config BOREN = ON // 電源電圧降下常時監視機能ON(ON) 18#pragma config CLKOUTEN = OFF // CLKOUTピンをRA6ピンで使用する(OFF) 19#pragma config IESO = OFF // 外部・内部クロックの切替えでの起動はなし(OFF) 20#pragma config FCMEN = OFF // 外部クロック監視しない(FCMEN_OFF) 21 22// コンフィギュレーション2の設定 23#pragma config WRT = OFF // Flashメモリーを保護しない(OFF) 24#pragma config PLLEN = OFF // 動作クロックを32MHzでは動作させない(OFF) 25#pragma config STVREN = ON // スタックがオーバフローやアンダーフローしたらリセットをする(ON) 26#pragma config BORV = HI // 電源電圧降下常時監視電圧(2.5V)設定(HI) 27#pragma config LVP = OFF // 低電圧プログラミング機能使用しない(OFF) 28 29// クロック周波数指定(__delay_ms()関数で使用する周波数) 30#define _XTAL_FREQ 8000000 31 32// 入力ポート(RAポート) 33#define S_R_WAKE_UP_SIGNAL_OUT RB0// 音声認識ウエイクアップ信号。 RB0 指定!変更不可! 34 35// #define RA0 // 36// #define RA1 // 37// #define RA2 // 38// #define RA3 // 39// #define RA6 // 40// #define RA4 // 41// #define RA5 // 42// #define RA7 // 43 44// 出力ポート(RBポート) 45// #define LATB7 // 46// #define LATB6 // 47// #define LATB5 // 48// #define LATB4 // 49// #define LATB3 // 50// #define LATB2 // 51// #define LATB1 // 52 53// 出力ポート(RCポート) 54// #define LATC0 // 55// #define LATC1 // 56// #define LATC2 // 57// #define LATC3 // 58// #define LATC4 // 59// #define LATC5 // 60 61#define TX_SENDING LATC6 // 送信。RC6指定!変更不可! 62#define RX_RECEIVER LATC7 // 受信。RC7指定!変更不可! 63 64// 【 シリアル送信時のTRMT確認 】 ====================== 65void TX_ONLY(unsigned char dat){ 66 while(TXSTAbits.TRMT==0){} // 送信BUSYになってないことを確認。 67 TXREG=dat; 68} 69 70// 【 メ イ ン 関 数 】============================= 71void main(void){ 72 73 // PICマイコン設定(PIC16F1938) 74 OSCCON = 0b01110010; // 内部クロックは8MHZとする 75 OPTION_REG= 0b10000000; // デジタルI/Oに内部プルアップ抵抗を使用する 76 ANSELA = 0b00000000; // AN0-AN4は使用しない全てデジタルI/Oとする 77 ANSELB = 0b00000000; // AN8-AN13は使用しない全てデジタルI/Oとする 78 TRISA = 0b11111111; // RA0-7まで入力に割当てる(0:出力 1:入力) 79 TRISB = 0b00000001; // ピン(RB)はRB0のみ入力、他は全て出力に割当てる 80 TRISC = 0b00000000; // ピン(RC)は全て出力に割当てる 81 WPUB = 0b00000001; // RB0は内部プルアップ抵抗を使用しない 82 OPTION_REGbits.nWPUEN=1; // RB0の内部プルアップ無効 83 PORTA = 0b00000000; // RA出力ピンの初期化(全てLOWにする) 84 PORTB = 0b00000000; // RB出力ピンの初期化(全てLOWにする) 85 PORTC = 0b00000000; // RC出力ピンの初期化(全てLOWにする) 86 // USART機能の設定 87 SPBRG = 51;// 9600 通信速度設定 88 TXSTA = 0b00100100;// BRGH=1; 高速サンプル指定 TXEN=1; 送信許可指定 89 RCSTA = 0b10010000;// SPEN=1; シリアルポート有効 CREN=1; 連続受信許可 90 // 割り込み許可設定 91 OPTION_REGbits.INTEDG=1; // RB0 ポートの立ち上がり(L⇒H)エッジを検出する。 92 INTCONbits.INTE=0b1; // RB0 /INT割り込みを許可。 93 INTCONbits.GIE=1; // グローバル割り込みを許可。 94 95 // BUZZER_SIGNAL_THREE_TIMES(RB0) に信号入力されるまで待機。 96 while(1){ 97 SLEEP(); 98 NOP(); 99 } 100} 101 102// ※※※【 割り込みルーチン(実際のメインプログラム) 】※※※※※※※※※※※※※※※※※※※※※※※※※※※ 103static void interrupt isr (void){ 104 105 if(INTCONbits.INTF){ 106 INTCONbits.INTF = 0;// 割り込みフラグをクリアする。 107 } 108 109 // 6Fを受信するまで62を送信し続ける。 110 while(RCREG!=0x6F){ 111 TX_SENDING = 1;// 最初にTXポートより通電出力しておく。 112 TX_ONLY(0x62);// CMD_BREAK送信。 113 } 114 115 // 日本語設定作業 116 TX_SENDING = 1;// 最初にTXポートより通電出力しておく。 117 TX_ONLY(0x6C);// CMD_LANGUAGE送信。 118 // TX_ONLY(0x43);// PAR_日本語(2)を送信。 119 120 // 不特定話者フレーズ認識作業 121 TX_SENDING = 1;// 最初にTXポートより通電出力しておく。 122 TX_ONLY(0x69);// 不特定話者認識 123 TX_ONLY(0x42);// 不特定話者認識 124 return; 125} 126

回答1件
あなたの回答
tips
プレビュー