Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problema pilotaggio 2 moduli AD9833 con Arduino Due

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[21] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto Utentealien75 » 3 gen 2026, 12:26

[quote="alien75"]Registri di fase:
Codice: Seleziona tutto
0xE000
0x=C000

registro di controllo:
Codice: Seleziona tutto
0x2100
Avatar utente
Foto Utentealien75
1 1 4 7
Sostenitore
Sostenitore
 
Messaggi: 591
Iscritto il: 31 lug 2011, 14:08

0
voti

[22] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto Utentealien75 » 3 gen 2026, 14:53

GioArca67 ha scritto:L'AD9833 ha
1 registro di controllo
2 registri per memorizzare una frequenza di funzionamemto
2 registri per memorizzare un offset di fase
Hai messo queste variabili nella tua classe?
Poi ti serve dove memorizzare FSYNC.
Se ti muovi a casaccio non otterrai nulla di utile.
In che modo micro riceverà le variazioni di frequenza fase e forma d'onda?


Mi da i seguenti errori compilando:
Codice: Seleziona tutto
Arduino:1.7.11 (Windows 8.1), Scheda:"Arduino Due (Programming Port)"

Opzioni di compilazione cambiate, ricompilo tutto
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(0x0100, sc);   //reset
                                 ^
9833.cpp: At global scope:
9833.cpp:6:10: error: 'Gen' has not been declared
     void Gen::begin(int sc)
          ^
9833.cpp: In function 'void begin(int)':
9833.cpp:8:33: error: 'UpdateRegister' was not declared in this scope
        UpdateRegister(0xC000, sc); //fase 0 in 0
                                 ^
9833.cpp: At global scope:
9833.cpp:12: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:14:8: error: 'FreqReg' was not declared in this scope
        FreqReg=(freq * pow(2,28))/25000000;
        ^
9833.cpp:14:32: error: 'pow' was not declared in this scope
        FreqReg=(freq * pow(2,28))/25000000;
                                ^
9833.cpp:16:13: error: 'MSB' was not declared in this scope
             MSB = (int)((FreqREg & 0xFFFC000) >> 14);
             ^
9833.cpp:16:26: error: 'FreqREg' was not declared in this scope
             MSB = (int)((FreqREg & 0xFFFC000) >> 14);
                          ^
9833.cpp:17:8: error: 'LSB' was not declared in this scope
        LSB = (int)(FreqReg & 0X3FFF);
        ^
9833.cpp:20:33: error: 'UpdateRegister' was not declared in this scope
        UpdateRegister(0x2100, sc); //Controll Reg
                                 ^
Errore durante la compilazione


Quando tento di aggiungere 9833.cpp e 9833.h al file principale mi chiede di sostituirlo e poi lo cancella, perché?
Io do Sckech | Aggiungi File e mi chiede di sostituirlo una volta selezionato il file, perché?
Quando avvio l' IDE la volta sucessiva non vengono collegati i due file acessori.
Avatar utente
Foto Utentealien75
1 1 4 7
Sostenitore
Sostenitore
 
Messaggi: 591
Iscritto il: 31 lug 2011, 14:08

0
voti

[23] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto UtenteGioArca67 » 3 gen 2026, 17:19

Se vuoi realizzare una classe per gestire un dispositivo e questo dispositivo (come appunto l'AD9833) non fornisce informazioni sul suo stato è opportuno modellare i registri del tuo dispositivo.
Se prendi il datasheet dell'AD9833 ti dice che ha
1 registro di controllo
2 registri per memorizzare la frequenza
2 registri per memorizzare la fase.
Avatar utente
Foto UtenteGioArca67
4.580 4 6 9
Master EY
Master EY
 
Messaggi: 4591
Iscritto il: 12 mar 2021, 9:36

0
voti

[24] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto Utentealien75 » 4 gen 2026, 8:00

Il mio problema come detto sopra è che non riesco a compilare il tre sorgenti, devo risolvere sto problema
prima. Aiutami per favore.
Avatar utente
Foto Utentealien75
1 1 4 7
Sostenitore
Sostenitore
 
Messaggi: 591
Iscritto il: 31 lug 2011, 14:08

0
voti

[25] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto Utenteangus » 4 gen 2026, 10:47

Devi risolvere gli errori che hai postato. Sono tutti scritti chiari.
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.475 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4168
Iscritto il: 20 giu 2008, 17:25

0
voti

[26] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto Utentealien75 » 4 gen 2026, 11:02

angus ha scritto:Devi risolvere gli errori che hai postato. Sono tutti scritti chiari.

Lo so che sono chiari li vedo, ma l' IDE nn mi linka i file aggiuntivi.
Avatar utente
Foto Utentealien75
1 1 4 7
Sostenitore
Sostenitore
 
Messaggi: 591
Iscritto il: 31 lug 2011, 14:08

0
voti

[27] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto Utenteangus » 4 gen 2026, 11:08

Ecco qua: https://docs.arduino.cc/
E per l'IDE : https://docs.arduino.cc/software/ide/

Altrimenti, fatti un favore, usa un libreria già pronta. Te ne ho già linkata una, eccone un'altra:
https://github.com/RobTillaart/AD9833
Aggiornata, funzionante, con esempi.
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.475 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4168
Iscritto il: 20 giu 2008, 17:25

0
voti

[28] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto Utentealien75 » 4 gen 2026, 11:19

ho messo questo codice di esempio:
Codice: Seleziona tutto
#include "SPI.h"
#include "AD9833.h"


AD9833 AD(10);  //  HW SPI, select pin 10


void setup()
{
  Serial.begin(115200);
  while(!Serial);
  Serial.println();
  Serial.println(__FILE__);
  Serial.print("AD9833_LIB_VERSION: ");
  Serial.println(AD9833_LIB_VERSION);
  Serial.println();

  SPI.begin();

  AD.begin();
  AD.setFrequency(1000, 0);   //  1000 Hz.

  AD.setWave(AD9833_SQUARE1);
  Serial.println(AD.getWave());
}


e mi da il seguente errore:
Codice: Seleziona tutto
Arduino:1.7.11 (Windows 8.1), Scheda:"Arduino Due (Programming Port)"

C:\users\fabio\Documents\Arduino\libraries\AD9833-master\AD9833.cpp: In member function 'void AD9833::writeData(uint16_t)':
C:\users\fabio\Documents\Arduino\libraries\AD9833-master\AD9833.cpp:428:13: error: 'class SPIClass' has no member named 'transfer16'
     _mySPI->transfer16(data);
             ^
C:\users\fabio\Documents\Arduino\libraries\AD9833-master\AD9833.cpp: In member function 'void AD9833::writeData28(uint16_t, uint16_t)':
C:\users\fabio\Documents\Arduino\libraries\AD9833-master\AD9833.cpp:478:13: error: 'class SPIClass' has no member named 'transfer16'
     _mySPI->transfer16(LSB);
             ^
C:\users\fabio\Documents\Arduino\libraries\AD9833-master\AD9833.cpp:479:13: error: 'class SPIClass' has no member named 'transfer16'
     _mySPI->transfer16(MSB);
             ^
Errore durante la compilazione
Ultima modifica di Foto Utentealien75 il 4 gen 2026, 11:27, modificato 1 volta in totale.
Avatar utente
Foto Utentealien75
1 1 4 7
Sostenitore
Sostenitore
 
Messaggi: 591
Iscritto il: 31 lug 2011, 14:08

0
voti

[29] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto Utenteangus » 4 gen 2026, 11:26

Puoi tranquillamente cancellarla
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.475 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4168
Iscritto il: 20 giu 2008, 17:25

0
voti

[30] Re: Problema pilotaggio 2 moduli AD9833 con ARDUINODUE

Messaggioda Foto UtenteGioArca67 » 4 gen 2026, 13:00

Se nei tuoi file locali hai una libreria SPI diversa da quella che Rob Tillaart ha pensato di usare potresti ottenere quell'errore.
invece di
Codice: Seleziona tutto
#include "SPI.h"


prova con
Codice: Seleziona tutto
#include <SPI.h>



Su Arduino Web Editor a me compila regolarmente selezionando anche Arduino DUE come scheda di riferimento ed usando nel codice SPI.transfer16(data)
Avatar utente
Foto UtenteGioArca67
4.580 4 6 9
Master EY
Master EY
 
Messaggi: 4591
Iscritto il: 12 mar 2021, 9:36

PrecedenteProssimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 20 ospiti