Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problema linking file aggiuntivi in progetto con Arduino Due

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Problema linking file aggiuntivi in progetto con Arduino Due

Messaggioda Foto Utentealien75 » 4 gen 2026, 11:14

Salve, ho il seguente codice con ARDUINODUE:
Codice: Seleziona tutto
#include "Arduino.h"
    #include <SPI.h>
    #include "Wire.h"
    #include "9833.h"

    int k, i;
    int FSYNC = 52;
    int FSYNC2 = 50;
    int SDATA = 11;
    int SCLK = 13;

    void setup()
    {
        for(k=50;k<53;k++)  pinMode(k, OUTPUT);
        for (i=50;i<53;i++)  digitalWrite(i,HIGH);
        for(k=11;k<14;k++)  pinMode(k, OUTPUT);
        for (i=11;i<14;i++)  digitalWrite(i,HIGH);
        Gen gen[10];
        gen[0].reset(FSYNC);
    }
     
     
    void loop()
    {
       gen[0].reset(FSYNC); //reset
       gen[0].begin(FSYNC);
       gen[0].signal(2000,0x2000,FSYNC);  //genera un segnale da 2000Hz sin
    }


poi devo collegate il file 9833.cpp:
Codice: Seleziona tutto
void Gen::reset(int sc)
    {
       UpdateRegister(0x2100, sc); //Controll Reg
       UpdateRegister(0x0100, sc);   //reset
    }

    void Gen::begin(int sc)
    {
       UpdateRegister(0x2100, sc); //Controll Reg
       UpdateRegister(0xC000, sc); //fase 0 in 0
       UpdateRegister(0xE000, sc); //fase 0 in 1
    }

    void Gen::signal(unsigned int freq, int shape, int sc)
    {
       FreqReg=(freq * pow(2,28))/25000000;
       if(shape==0x2020) FreqReg = FreqReg << 1;
            MSB = (int)((FreqREg & 0xFFFC000) >> 14);
       LSB = (int)(FreqReg & 0X3FFF);
       LSB |= 0X4000;
       MSB |= 0x4000;
       UpdateRegister(0x2100, sc); //Controll Reg
       UpdateRegister(LSB, sc);    //FreqREg LSB
       UpdateRegister(MSB, sc);    //FreqReg MSB
       UpdateRegister(0xC000, sc); //phase Reg
       UpdateRegister(shape, sc);  //exit reset
    }


e il relativo header 9833.h:
Codice: Seleziona tutto
class Gen
    {
       public:
          void begin(int);
          void reset(int);
          void signal(unsigned int, int, int);
           void UpdateRegister(unsigned int, int );
       private:
          long FreqReg;
          unsigned int LSB, MSB;
    }


Ho fatto File | Nuovo per creare uno nuovo progetto poi ho fatto Sckech | Aggiungi file per il file -cpp ed il relatiov header e mi chiede se voglio sostituirlo e compilando mi da errore:
Codice: Seleziona tutto
Arduino:1.7.11 (Windows 8.1), Scheda:"Arduino Due (Programming Port)"

9833.cpp:1:10: error: 'Gen' has not been declared
     void Gen::reset(int sc)
          ^
9833.cpp: In function 'void reset(int)':
9833.cpp:3:33: error: 'UpdateRegister' was not declared in this scope
        UpdateRegister(0x2100, sc); //Controll Reg
                                 ^
9833.cpp: At global scope:
9833.cpp:7:10: error: 'Gen' has not been declared
     void Gen::begin(int sc)
          ^
9833.cpp: In function 'void begin(int)':
9833.cpp:9:33: error: 'UpdateRegister' was not declared in this scope
        UpdateRegister(0x2100, sc); //Controll Reg
                                 ^
9833.cpp: At global scope:
9833.cpp:14:10: error: 'Gen' has not been declared
     void Gen::signal(unsigned int freq, int shape, int sc)
          ^
9833.cpp: In function 'void signal(unsigned int, int, int)':
9833.cpp:16:8: error: 'FreqReg' was not declared in this scope
        FreqReg=(freq * pow(2,28))/25000000;
        ^
9833.cpp:16:32: error: 'pow' was not declared in this scope
        FreqReg=(freq * pow(2,28))/25000000;
                                ^
9833.cpp:18:13: error: 'MSB' was not declared in this scope
             MSB = (int)((FreqREg & 0xFFFC000) >> 14);
             ^
9833.cpp:18:26: error: 'FreqREg' was not declared in this scope
             MSB = (int)((FreqREg & 0xFFFC000) >> 14);
                          ^
9833.cpp:19:8: error: 'LSB' was not declared in this scope
        LSB = (int)(FreqReg & 0X3FFF);
        ^
9833.cpp:22:33: error: 'UpdateRegister' was not declared in this scope
        UpdateRegister(0x2100, sc); //Controll Reg
                                 ^
Errore durante la compilazione



Aiutatemi a capire perche non linka e compila i file che lo compongono.
?%
Avatar utente
Foto Utentealien75
1 1 4 8
Sostenitore
Sostenitore
 
Messaggi: 588
Iscritto il: 31 lug 2011, 14:08

1
voti

[2] Re: Problema linking file aggiuntivi in progetto con ARDUINO

Messaggioda Foto UtenteWALTERmwp » 4 gen 2026, 14:09

@alien75, hai già questa discussione aperta, continua lì; non aprire thread ridondanti, grazie.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8981
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino


Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti