Erro na compilação com o AtmelStudio 6

Olá pessoal, estou tendo dificuldades em compilar o código abaixo, peço ajuda aos irmãos para achar o problema. Estou usando AtmelStudio 6 e a IDE 1.6.5 do Arduino

Com o código dentro da definição #if defined(ARDUINO_ARCH_AVR) retorna o erro:

Error 1 undefined reference to setup' Error 2 undefined reference to loop’
Error 3 ld returned 1 exit status

E fora da definição #if defined(ARDUINO_ARCH_AVR) retorna o erro

This library only supports boards with an AVR or SAM processor File: Servo.h

#if defined(ARDUINO_ARCH_AVR)

#define F_CPU 16000000 //clock do processador
#define ARDUINO 165 //versão da biblioteca
#include "Arduino.h"  //biblioteca base do Arduino
#include "Servo.h"


void setup();
void loop();
void liga_esteira();
void desliga_esteira();
void principal();
void interrupcao();

Servo esteira,trocador;

int sensor = A5;
int qtd_frasco = 1; //quantidade de item por frasco
int contador;
int tempo_cair = 2000;
int tempo_angulo = 221;
int total; //total de frascos

void setup() {
	//Serial.begin(9600);
	
	esteira.attach(6);
	trocador.attach(7);
	trocador.write(111);//sinal para deixar servo parado
	esteira.write(111);
	liga_esteira();
}

void loop(){
	principal();
}

void liga_esteira(){
	esteira.write(150); //testar valor para sentido horario
}

void desliga_esteira(){
	esteira.write(111); //valor exato para servo parar
}

void proximo_frasco(){
	delay(tempo_cair);
	trocador.write(150);//liga
	delay(tempo_angulo);//regulagem da posicao
	trocador.write(111);//desliga
	contador = 0;
}

void principal(){
	if(analogRead(sensor) >= 800){
		delay(100);
		//Serial.println(analogRead(sensor));
		while(analogRead(sensor) >= 800){
			//Serial.println("Passando pelo sensor...");
			delay(500);
			if(analogRead(sensor) <= 800){
				contador++;
				//Serial.print("Contador: ");
				//Serial.print(contador);
				//Serial.println("");
			}
		}
	}
	if(contador == qtd_frasco){
		proximo_frasco();
		total++;
	}
	if(total == 4){
		interrupcao();
	}
}

void interrupcao(){
	desliga_esteira();
}

#endif

Quais são as linhas em que são assinaados os erros? Qual é a bibioteca "Servo.h" que está a utilzar, a do Arduino ou outra? Porquê?

luisilva:
Quais são as linhas em que são assinaados os erros? Qual é a bibioteca "Servo.h" que está a utilzar, a do Arduino ou outra? Porquê?

Linha 63: This library only supports boards with an AVR or SAM processor File: Servo.h

Linha 0: ld returned 1 exit status File: collect2.exe
Linha 43: undefined reference to loop' File: main.cpp Linha 40: undefined reference to setup' File: main.cpp 40

Estou utilizando a biblioteca Servo.h padrão do Arduino, uso ela porque preciso acionar os servos (9g). Um controla a esteira e o outro faz a troca do "frasco"

Obrigado pela resposta

Pode mudar o nome da biblioteca “Servo.h” e ver o que se passa. Isto deve estar a acontecer, porque esse IDE já deve ter outra biblioteca com esse nome e "está a “fazer confusão”.
O que é o ficheiro “collect2.exe”?

Se isso for compilado sem o “#ifdef” continua a dar erros?

Um erro que existe no seu código é o facto de não existir a função “main()”. Atenção que AtmelStudio não é o IDE do Arduino e, sendo assim, tudo o que está por detrás do IDE Arduino aí não existe.

Resumindo, não percebo muito bem porque está a dar erro, no entanto, penso que está a utilizar coisas a mais do Arduino IDE.

Adicionaste o ficheiro main.cpp ao teu projecto?

Eu nunca usei o Atmel Studio, mas sem a função main como o Luis indicou, o programa não vai correr.

Onde foste buscar esse #ifdef e os defines? Algum exemplo na net?

Fiz uns testes aqui e descobri que o problema está na biblioteca Servo.h (IDE 1.01 e 1.65), vou testar com outras pra ver o que dá.

Obrigado pelas dicas!!

Já agora, se não vai criar as suas próprias bibliotecas e vai utilizar as do Arduino, porque é que está a utilizar o AtmelStudio?

luisilva:
Já agora, se não vai criar as suas próprias bibliotecas e vai utilizar as do Arduino, porque é que está a utilizar o AtmelStudio?

Foi pedido pelo professor, o projeto tem que funcionar na IDE do Arduino e no simulador do AtmelStudio com o mesmo código.

furlan:
Foi pedido pelo professor, o projeto tem que funcionar na IDE do Arduino e no simulador do AtmelStudio com o mesmo código.

Pelo que estou a ver isso não vai ser fácil.

luisilva:
Pelo que estou a ver isso não vai ser fácil.

Não vai mesmo luisilva, mas de qualquer forma obrigado pela atenção.