Ir ao conteúdo
  • Cadastre-se

Erro "'SD' does not name a type"


Posts recomendados

 Estou fazendo um programa para o Arduino que usa o cartão SD e deu o seguinte erro ao verificar:

 

Arduino: 1.6.5 (Windows 8.1), Placa:"Arduino Uno"
 
projeto:44: error: 'SD' does not name a type
projeto:45: error: 'SD' does not name a type
projeto:47: error: 'prog' does not name a type
projeto.ino: In function 'void principal()':
projeto:66: error: converting to 'String' from initializer list would use explicit constructor 'String::String(unsigned char, unsigned char)'
projeto:43: error: initializing argument 1 of 'String inverte(String)'
projeto:69: error: 'peek' was not declared in this scope
projeto.ino: In function 'String inverte(String)':
projeto:92: error: cannot convert 'String' to 'uint8_t {aka unsigned char}' for argument '1' to 'int digitalRead(uint8_t)'
In file included from C:\Users\Documents\Arduino\libraries\SD\src/SD.h:18:0,
                 from projeto.ino:1:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:41:14: error: converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'
 #define LOW  0x0
              ^
projeto.ino:93:14: note: in expansion of macro 'LOW'
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:40:14: error: converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'
 #define HIGH 0x1
              ^
projeto.ino:95:14: note: in expansion of macro 'HIGH'
Multiple libraries were found for "SD.h"
 
 Used: C:\Users\Documents\Arduino\libraries\SD
 
 Not used: C:\Program Files (x86)\Arduino\libraries\SD
 
'SD' does not name a type
 
  Este relatório deveria ter mais informações
  "Mostrar saída verbosa durante a compilação"
  habilitado em Arquivo > Preferências.
 
 
Aqui vai o código do programa: 
 
#include <SD.h>#define ENQUANTO 1#define SE 2#define IGUAL 3#define DIFERENTE 4#define INVERTE 5#define SETA 6#define LIMPA 7#define A_IGUAL 8#define SUBTRAI 9#define SOMA 10#define DIVIDE 11#define MULTIPLICA 12#define FECHA_ENQUANTO 13#define FECHA_CONDICOES 14#define B_OU 15#define B_E 16#define PARENTESES 17#define FECHA_PARENTESES 18#define D_IGUAL 19#define D_DIFERENTE 20#define D_IGUALUM 21#define D_IGUALZERO 22#define D_MAIOR 23#define D_MENOR 24#define AVC_IGUAL 25#define AVC_MAIOR 26#define AVC_MENOR 27#define AVV_IGUAL 28#define AVV_MAIOR 29#define AVV_MENOR 30void setup() {  }  SD.begin();  SD.exists("prog.bin");  File prog = SD.open("prog.bin");  prog.available();    byte leia(void){    return prog.read();  }    void principal(void){    switch(leia()){      case ENQUANTO:        enquanto();        break;      case SE:        break;        case IGUAL:        digitalWrite(leia(),digitalRead(leia()));        break;      case DIFERENTE:        digitalWrite(leia(),inverte(leia()));        break;      case INVERTE:        digitalWrite(leia(),inverte(peek()));        break;      case SETA:        digitalWrite(leia(),HIGH);        break;      case LIMPA:        digitalWrite(leia(),LOW);        break;        case A_IGUAL:        break;      case SUBTRAI:        break;      case SOMA:        break;      case DIVIDE:        break;      case MULTIPLICA:        break;    }  }  String inverte(String port){     if(digitalRead(port)==HIGH)      return LOW;     else      return HIGH;  }  void enquanto(void){    if(decisão()){      principal();    }    else{      while(leia()!=FECHA_ENQUANTO);    }  }  bool decisão(void){    bool resultado;    while(leia()!=FECHA_CONDICOES){      if(prog.peek()==B_OU)        resultado = (resultado || condicoes());      else if(prog.peek()==B_E)        resultado = (resultado && condicoes());      else if(prog.peek()==PARENTESES)        resultado = operadorbool();      else        resultado = condicoes();    }    return resultado;  }  bool operadorbool(void){    bool result;    while(leia()!=FECHA_PARENTESES){      if(prog.peek()==B_OU)        result = (result || condicoes());      else if(prog.peek()==B_E)        result = (result && condicoes());      else if(prog.peek()==PARENTESES)        result = operadorbool();      else        result = condicoes();    }    return result;  }    bool condicoes(void){    bool res;    switch(leia()){      case D_IGUAL:        res = (digitalRead(leia())==digitalRead(leia()));        break;      case D_DIFERENTE:        res = (digitalRead(leia())!=digitalRead(leia()));        break;      case D_IGUALUM:        res = (digitalRead(leia())==HIGH);        break;      case D_IGUALZERO:        res = (digitalRead(leia())==LOW);        break;      case D_MAIOR:        res = ((digitalRead(leia())==HIGH)&&(digitalRead(leia())==LOW));        break;      case D_MENOR:        res = ((digitalRead(leia())==LOW)&&(digitalRead(leia())==HIGH));        break;      case AVC_IGUAL:        res = ((analogRead(leia())/255)==(leia()/100));        break;      case AVC_MENOR:        res = ((analogRead(leia())/255)<(leia()/100));        break;      case AVC_MAIOR:        res = ((analogRead(leia())/255)>(leia()/100));        break;      case AVV_IGUAL:        res = (analogRead(leia())==analogRead(leia()));        break;      case AVV_MENOR:        res = (analogRead(leia())<analogRead(leia()));        break;      case AVV_MAIOR:        res = (analogRead(leia())>analogRead(leia()));        break;      case PARENTESES:        res = operadorbool();        break;    }        return res;  }void loop() {  while(prog.available()){    principal();  }    }

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...