- 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.


Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


