Problema con IDE di arduino [RISOLTO]

Prima di tutto salve a tutti!!!
Avviso che sono a le prime armi con l'ide di arduino ma ho un po esperienza con l'ambiente mplab e i pic quindi piu o meno credo di non aver fatto errori di scrittura del codice.
Al compilare il codice ricevo il seguente errore: desktop/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr5/crtm328p.o:(.init9+0x0): undefined reference to `main'
Utilizzo L'arduino uno e come sistema operativo win 7, se puo servire.
Il mio è un progetto che portero' come tesina d'esame, in pratica l'arduino comanda tramite segnale PWM un L293 (un driver a ponte H) il quale è collegato a un motorino DC, questo fa muovere una cabina.La posizione della cabina è rilevata da pulsanti chiamati nel programma tastpos, le altri parti del programma sono led e display di posizione.
ecco lo sketch

byte pwm;
int ledpos3 = A0;
int ledpos2 = A1;
int ledpos1 = A2;
int tastpos1 = A3;
int tastpos2 = A4;
int tastpos3 = A5;
int tastpiano1 = 13;
int tastpiano2 = 12;
int tastpiano3 = 11;
//writedisp=

//DISPLAY!!

 void setup() {
   pinMode(ledpos3, OUTPUT);   //LED POSIZIONE
   pinMode(ledpos2, OUTPUT);
   pinMode(ledpos1, OUTPUT);
   pinMode(tastpos1, INPUT);   //TASTI POSIZIONE
   pinMode(tastpos2, INPUT);
   pinMode(tastpos3, INPUT);
   pinMode(tastpiano1, INPUT); //TASTI SCELTA PIANO 
   pinMode(tastpiano2, INPUT);
   pinMode(tastpiano3, INPUT);
   pinMode(9, OUTPUT);         //PWM
   pinMode(8, OUTPUT);
   pinMode(7, OUTPUT);         //DISPLAY
   pinMode(6, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(4, OUTPUT);
   pinMode(3, OUTPUT);
   pinMode(2, OUTPUT);
   pinMode(1, OUTPUT);
   pinMode(0, OUTPUT);
   
   if (digitalRead(tastpos1) == HIGH){    //INIZIALIZZAZIONE LED 
    digitalWrite(ledpos1, HIGH);        //E DISPLAY
    //DISPLAY 1                         PRIMO PIANO
    digitalWrite(7, LOW);
    digitalWrite(6, LOW);
    digitalWrite(5, LOW);
    digitalWrite(4, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(2, LOW);
    digitalWrite(1, HIGH);
    digitalWrite(0, LOW);
    }
   if (digitalRead(tastpos2) == HIGH) {
     digitalWrite(ledpos2, HIGH);
     //DISPLAY A 2                        SECONDO PIANO
     digitalWrite(7, HIGH);
     digitalWrite(6, LOW);
     digitalWrite(5, HIGH);
     digitalWrite(4, HIGH);
     digitalWrite(3, HIGH);
     digitalWrite(2, HIGH);
     digitalWrite(1, LOW);
     digitalWrite(0, LOW);
     }
   if (digitalRead(tastpos3) == HIGH) {
     digitalWrite(ledpos3, HIGH);
     //DISPLAY A 3                         TERZO PIANO    
     digitalWrite(7, HIGH);
     digitalWrite(6, LOW);
     digitalWrite(5, HIGH);
     digitalWrite(4, HIGH);
     digitalWrite(3, LOW);
     digitalWrite(2, HIGH);
     digitalWrite(1, HIGH);
     digitalWrite(0, LOW);
     }
     }
      void avanti(byte pwm){    
     digitalWrite(8, HIGH);
     analogWrite(9, (255-pwm));
     }
   void indietro(byte pwm) {
     digitalWrite(8, LOW);
     analogWrite(9, pwm); 
     }
   void fermo() {
     digitalWrite(8, LOW);
     digitalWrite(9, LOW);
     }
     //REGOLAZIONE FUNZ MILLS() E REGOLAMENTO TEMPO PER
     //VEDERE ORDINE:DISPLAY, TASTI, MOTORE
    void loop(){                           //STABILIRE VALORE PWM!!!!    
      if(digitalRead(tastpiano1) == HIGH) { //SE PREMO PRIMO PIANO
        if(digitalRead(tastpos1) == HIGH) {  //se la cabina è al primo piano
          fermo();                            //stop 
          }
        if(digitalRead(tastpos2) == HIGH) {  //se la cabina è al secondo piano 
          while(digitalRead(tastpos1) == HIGH) {  //mentre tastoposizione1 non sia HIGH                              
          indietro(pwm);                            //vai indietro 
            }
         delay(1000);                    //aspetta posizione centrale cabina 
         fermo();                        //stop
           }
        if(digitalRead(tastpos3) == HIGH) {  //se la cabina è al terzo piano
          while(digitalRead(tastpos1) == HIGH) {   //mentre tastoposizione 1 non sia HIGH
          indietro(pwm);                           //vai indietro
            }
         delay(1000);                        //aspetta posizione centrale cabina
         fermo();                            //stop
            }
           }            //FINE FUNZIONE PRIMO PIANO
      if(digitalRead(tastpiano2) == HIGH) { //SE PREMO SECONDO PIANO
        if(digitalRead(tastpos1) == HIGH) {  //se la cabina è al primo piano
          while(digitalRead(tastpos2) == HIGH) { //mentre tastoposizione2 non sia HIGH
          avanti(pwm);                           //vai avanti
          }
         delay(1000);                          //aspetta posizione corretta 
         fermo();                          //stop
           }
        if(digitalRead(tastpos2) == HIGH) { //se la cabina è al secondo piano
         fermo();                            //stop
            }
        if(digitalRead(tastpos3) == HIGH) {  //se la cabina è al terzo piano
           while(digitalRead(tastpos2) == HIGH) { //mentre tastoposizione non sia HIGH 
           indietro(pwm);                          //vai indietro
           }
          delay(1000);                       //aspetta 1 sec
          fermo();                           //stop
            }
           }           //FINE FUNZIONE SECONDO PIANO
      if(digitalRead(tastpiano3) == HIGH) { //SE PREMO TERZO PIANO
        if(digitalRead(tastpos1) == HIGH) { //se la cabina è al primo piano
          while(digitalRead(tastpos3) == HIGH) {  //mentre tastoposizione3 non sia HIGH
          avanti(pwm);                            //vai avanti
          }
          delay(1000);                        //aspetta 1sec
          fermo();                            //stop
            } 
        if(digitalRead(tastpos2) == HIGH) {   //se la cabina è al secondo piano
          while(digitalRead(tastpos3) == HIGH) {
           avanti(pwm);
           }
           delay(1000);
           fermo();
           } 
        if(digitalRead(tastpos3) == HIGH) {  //se la cabina è al terzo piano
         fermo();                            //stop
         } 
        }         //FINE FUNZIONE TERZO PIANO
     }

Ho cercato su google ma niente di niente su questo errore...

Allora è qualcosa che ha a che fare con Win'7 perché io ho appena compilato il progetto sia su IDE 0022 che 1.0.1 su un PC non mio con Win'XP sia su un PC con Linux e compila correttamente.

grazie per la risposta, adesso provo su un'altro pc ma è sempre win 7.....speriamo bene...

escono altri errori adesso, MAIN.cpp.o:in function 'main':
C:\ .....\desktop\nuova cartella\hardware\arduino\cores\arduino/main.cpp:11: undentified reference to 'setup'
C:......\desktop\nuova cartella\hardware\arduino\cores\arduino/main.cpp:14: undentified reference to 'loop'

ma non sara' perche l'ho messo sul desktop l'eseguibile?

leo72:
..........io ho appena compilato il progetto sia su IDE 0022 che 1.0.1 su un PC non mio con Win'XP sia su un PC con Linux e compila correttamente.

ROTFL XD XD

Non credo. La cartella di Arduino dove la metti la metti.
ho provato spostandola anch'io sulla scrivania e non è cambiato nulla. Compila senza errori.

Ti consiglio di provare a riscaricarti l'IDE, forse qualche file non è arrivato corretto.

L'hai colta :slight_smile:
Sono a lavoro, come si intuisce dagli orari dei miei post notturni, quindi come ricorderai ho 2 PC, uno con Windows ed uno con Linux.

niente di niente...ho riscaricato i file da tutti e due i pc ma uguale uno mi fa il primo errore e l'altro mi fa l'altro errore....non so dove sbattere la testa

Mi spiace non aiutarti di più, serve uno con Windows 7 che provi lo sketch.

Anche se mi pare di aver letto che più di qualcuno usa W7 con l'IDE..... Mi pare che la gestione dei percorsi sia un po' particolare con Win7. Perché non provi a spostare la cartella dell'IDE direttamente in C: così ti lasci alle spalle quei lunghissimi percorsi?

ok queste sono le stranezze dell'informatica...per sbaglio ho spostato tutta la cartella dello sketch su una penetta per caricarla sull'altro pc, al ritorno giustamente l'ide mi dice che non trova piu il percorso, apro un nuovo sketch, faccio copia incolla e compilo...adesso funziona!!

leo72:
Mi spiace non aiutarti di più, serve uno con Windows 7 che provi lo sketch.

Provato. Win 7 IDE 1.0 : Nessun errore.
Binary sketch size: 2174 bytes (of a 32256 byte maximum)

Mi viene da pensare: ma hai scelto la giusta scheda verso cui compilare?

dalubar:

leo72:
Mi spiace non aiutarti di più, serve uno con Windows 7 che provi lo sketch.

Provato. Win 7 IDE 1.0 : Nessun errore.
Binary sketch size: 2174 bytes (of a 32256 byte maximum)

dove tieni (in linea di massima...) la cartella con l'IDE?

C:\Program Files (x86)\Arduino SW\arduino-1.0

Dentro Arduino SW raccolgo tutte le versioni.

Provato con win7 64bit a me funziona senza errori

dalubar:

C:\Program Files (x86)\Arduino SW\arduino-1.0

Dentro Arduino SW raccolgo tutte le versioni.

Ecco un modo saggio di usare il software, esiste una cartella programmi, non è che perché l'IDEfunziona senza installazione la si deve buttare dappertutto :cold_sweat:

leo72:
Mi viene da pensare: ma hai scelto la giusta scheda verso cui compilare?

Quando appena ho comprato l'arduino avevo troppa paura di rompere qualcosa quindi prima di collegarlo al pc mi sono letto tutti i tutorial, la scelta della scheda, la scelta della porta seriale ecc....

Meno male che non mi hai chiesto di fare uno screenshot del desktop... :grin: :sweat_smile:

in effetti è una brutta abitudine, provedero' a mettere la cartella nel suo posto