I tried to upload code to the Arduino Mega ADK but always come out a warning "error compiling". Is there something wrong with the code? How do I fix this?
the code :
#include <inttypes.h>
#include <avr/pgmspace.h>
//#include <Spi.h>
#include <Max3421e.h>
#include <Max3421e_constants.h>
#include <Max_LCD.h>
#include <Usb.h>
#include <ptp.h>
#include <canoneos.h>
#define DEV_ADDR 1
// Canon EOS 400D
#define DATA_IN_EP 1
#define DATA_OUT_EP 2
#define INTERRUPT_EP 3
#define CONFIG_NUM 1
#define SerPri Serial.print
#define SerPriln Serial.println
#define SerAva Serial.available
#define SerRea Serial.read
uint16_t x;
class CamStateHandlers : public PTPStateHandlers
{
bool stateConnected;
public:
CamStateHandlers() : stateConnected(false) {};
virtual void OnDeviceDisconnectedState(PTP *ptp);
virtual void OnDeviceInitializedState(PTP *ptp);
} CamStates;
CanonEOS Eos(DEV_ADDR, DATA_IN_EP, DATA_OUT_EP, INTERRUPT_EP, CONFIG_NUM, &CamStates);
void CamStateHandlers::OnDeviceDisconnectedState(PTP *ptp)
{
if (stateConnected)
{
stateConnected = false;
Notify(PSTR("Camera disconnected\r\n"));
}
}
void CamStateHandlers::OnDeviceInitializedState(PTP *ptp)
{
if (!stateConnected)
stateConnected = true;
while(stateConnected){
//Serial.println("Reading");
//delay(1000);
readSerialCommand();
}
// if (rc != PTP_RC_OK)
// Message(PSTR("Error: "), rc);
delay(5000);
}
void setup()
{
Serial.begin( 115200 );
Serial.println("Start");
Eos.Setup();
delay( 200 );
}
void loop()
{
Eos.Task();
}
void readSerialCommand() {
char queryType;
if (SerAva()) {
queryType = SerRea();
switch (queryType) {
case 'C': //Capture!!!
Serial.println("Capture!");
Eos.Capture();
delay(500);
break;
case 'O': //ViewFinder Output. 1 = LCD. 2 = AV.
//Eos.SetDevicePropValue(EOS_DPC_CameraOutput, (uint16_t)readFloatSerial());
delay(1000);
break;
case 'V': //Liveview ON/OFF
if((uint16_t)readFloatSerial() == 0){
Eos.SwitchLiveView(false);
Serial.println("Live View OFF!");
}
else {
Eos.SwitchLiveView(true);
Serial.println("Live View ON!");
}
delay(1000);
break;
case 'I': //Set Iso
Eos.SetProperty(EOS_DPC_Iso, (uint16_t)readFloatSerial());
delay(1000);
Serial.println("ISO Changed!");
break;
case 'S': //Set ShutterSpeed
Eos.SetProperty(EOS_DPC_ShutterSpeed, (uint16_t)readFloatSerial());
delay(1000);
Serial.println("Shutter Speed Changed!");
break;
case 'W': //Set Whitebalance
Eos.SetProperty(EOS_DPC_WhiteBalance, (uint16_t)readFloatSerial());
delay(1000);
Serial.println("White Balance Changed!");
break;
case 'A': //Set Aperture
Eos.SetProperty(EOS_DPC_Aperture, (uint16_t)readFloatSerial());
delay(1000);
Serial.println("Aperture value Changed!");
break;
case 'F': //MoveFocus
Eos.MoveFocus(3);
break;
case 'B': //MoveFocus
Eos.MoveFocus(0x8003);
break;
}
}
}
float readFloatSerial() {
byte index = 0;
byte timeout = 0;
char data[128] = "";
do {
if (SerAva() == 0) {
delay(10);
timeout++;
}
else {
data[index] = SerRea();
timeout = 0;
index++;
}
}
while ((data[constrain(index-1, 0, 128)] != ';') && (timeout < 5) && (index < 128));
return atof(data);
}
error message :
core.a(main.cpp.o): In function `main':
D:\arduino-1.0.1\hardware\arduino\cores\arduino/main.cpp:5: undefined reference to `setup'
D:\arduino-1.0.1\hardware\arduino\cores\arduino/main.cpp:15: undefined reference to `loop'
Thanks any help would be great