台灣最大程式設計社群網站
線上人數
1804
 
會員總數:245979
討論主題:189557
歡迎您免費加入會員
討論區列表 >> C/C++ >> arduino 錯誤碼
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
arduino 錯誤碼
價值 : 50 QP  點閱數:871 回應數:1
樓主

johnny
門外漢
0 2
38 0
發送站內信



我使用arduino 編譯程式

錯誤碼

sketch_may24a.ino: In function 'int main()':
sketch_may24a.ino:92:13: error: 'configSel' was not declared in this scope

int main() 這個錯誤碼 要怎麼改
還有如果我想刪除會用到configsel 這個函式 那我應該從哪開始刪除 感謝

以下是我使用CODE

#define F_CPU 16000000UL //16mhz
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include "TouchScreen.h"
#include "TFT.h"
#include "config.h"
#include "twicam.h"
#include "camregdef.h"
#include "gammaedit.h"
#include "selections.h"
void menu(void);
//OV7670 undocumented register 1F is called LAEC this means exposures less than one line
#ifdef haveSDcard
#include "ff.h" /* Declarations of FatFs API */
#include "mmc.h"
//volatile uint16_t Timer; /* Performance timer (100Hz increment) */

/*---------------------------------------------------------*/
/* 100Hz timer interrupt generated by OC2 */
/*---------------------------------------------------------*/


ISR(TIMER2_COMPA_vect){
//PORTG|=1<<5;
//++Timer; /* Performance counter for this module */
disk_timerproc(); /* Drive timer procedure of low level disk I/O module */
//PORTG&=~(1<<5);
}
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */


uint32_t get_fattime(void){
/*RTC rtc;
if (!RtcOk) return 0;
// Get local time
rtc_gettime(&rtc);*/

/* Pack date and time into a DWORD variable */
return ((uint32_t)(2013 - 1980) << 25)
| ((uint32_t)10 << 21)
| ((uint32_t)27 << 16)
| ((uint32_t)11 << 11)
| ((uint32_t)0 << 5)
| ((uint32_t)0 >> 1);
}
#endif
int main(void){
DDRL|=8;
ASSR &= (uint8_t)~(_BV(EXCLK) | _BV(AS2));
//generate 8mhz clock
TCCR5A=67;
TCCR5B=17;
DDRC=0;//set ov7670 pins to input
#ifdef MT9D111
OCR5A=2;//Formula for output clock is F_CPU/(2(x+1))
#else
OCR5A=0;
#endif
DDRC=0;
DDRG|=1<<5;
UBRR0H=0;
UCSR0A|=2;//double speed aysnc
UBRR0L=3;//0 = 2m 1= 1m 3 = 0.5M 2M baud rate = 0 7 = 250k 207 is 9600 baud rate
UCSR0B = (1<<RXEN0)|(1<<TXEN0);//Enable receiver and transmitter
UCSR0C=6;//async 1 stop bit 8bit char no parity bits
ADCSRA=(1<<ADEN)|(1<<ADPS2);//enable ADC
uint8_t error;
tft_init();//init TFT library
tft_setDisplayDirect(DOWN2UP);
#ifdef haveSDcard
OCR2A = 155;//F_CPU / 1024 / 100 - 1;
TCCR2A=2;//CTC mode
TCCR2B=7;//F_CPU/1024
TIMSK2 |= (1<<OCIE2A);
disk_timerproc();
#endif
sei();
TWSR&=(uint8_t)~3;//disable prescaler for TWI
TWBR=72;//set to 100khz
#ifdef ov7670
configSel();
#else
initCam();
#endif
//try writing to sd card
#ifdef haveSDcard
tft_drawStringP(PSTR("About to initialize"),24,320,1,WHITE);
//UINT bw;
disk_initialize(0);
tft_drawStringP(PSTR("Initialized"),32,320,1,WHITE);
f_mount(&FatFs, "0:", 0); /* Give a work area to the default drive */
tft_drawStringP(PSTR("Mounted"),40,320,1,WHITE);
#endif
menu();
}




搜尋相關Tags的文章: [ arduino 錯誤碼 ] ,
本篇文章發表於2016-05-25 21:19
1樓
最有價值解答

Raymond
檢舉此回應
>int main() 這個錯誤碼 要怎麼改

上面的錯誤訊息說的是:
『在函式 int main() 裡的第 92 行有這個錯誤: 'configSel 在這個函式範圍內沒有宣告』

也就是說, int main() 本身沒有錯誤, 錯誤訊息裡的 main() 是個參考訊息, 方便程式員找出錯誤的所在.

你必須學習如何看懂編譯器的錯誤訊息 - 這是每一個程式員必須有的最基本能力.


>還有如果我想刪除會用到configsel 這個函式 那我應該從哪開始刪除 感謝

從錯誤訊息就可以看到 configSel 就是 main() 裡呼叫的. 「會用得到 configSel 這個函式」的就是 main(). 你要把 main() 刪除嗎?

再看 configSel() 周遭的程式碼:

configSel() 會被呼叫, 因為程式某處定義了 ov7670 這個符號. 我不知道這個符號是在哪裡定義的, 也許是某個頭檔, 也許你的程式不完整.

根據這個程式片段, configSel() 跟 initCam() 一定會呼叫一個. initCam() 在你貼的程式裡也看不到宣告. 也許這兩個函式都是第三者函式庫的函式, 如果是這樣, 它們應該會有相關的頭檔你忘了 #include.

你要刪的話就把這裡的呼叫刪掉, 後果自己負責.

如果你的程式是從某處抄來的, 有問題應該到源頭去問, 或者 arduino 的討論區比較會有答案.

本篇文章回覆於2016-05-26 22:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.