un dente di sega.
Riporto di seguito il codice trovato in rete che dovrebbe fare questo, ma il risultato è che non genera nessuna rampa.
Codice:
- Codice: Seleziona tutto
#include <SPI.h>
#define FSYNC 31 // Pin per il controllo del chip AD9833
#define FREQ 100 // Frequenza desiderata (Hz)
#define PHASE_INCREMENT 100 // Incremento della fase per il dente di sega
// Funzione per scrivere un valore a 16 bit nell'AD9833
void spiWrite(byte data) {
digitalWrite(FSYNC, LOW);
SPI.transfer(data);
digitalWrite(FSYNC, HIGH);
}
// Funzione per impostare la frequenza
void setFrequency(long frequency) {
long f = (long)((frequency * 4294967296.0) / 25000000.0); // Calcolo del valore per il registro di frequenza
// Imposta i bit MCLK/1 e MSB first
spiWrite(11);
spiWrite((byte)(f & 0xFF));
spiWrite((byte)((f >> 8) & 0xFF));
spiWrite((byte)((f >> 16) & 0xFF));
spiWrite((byte)((f >> 24) & 0x0F));
}
// Funzione per impostare la fase
void setPhase(int phase) {
long p = (phase * 65536L) / 360; // Converti gradi in valore per il registro di fase
spiWrite(0xC0); // Imposta il registro di fase
spiWrite((byte)(p & 0xFF));
spiWrite((byte)((p >> 8) & 0xFF));
}
void setup() {
SPI.begin();
pinMode(FSYNC, OUTPUT);
digitalWrite(FSYNC, HIGH);
// Inizializzazione dell'AD9833
spiWrite(0x00); // Reset del chip
delay(10);
spiWrite(13); // Imposta il controllo del clock
setFrequency(FREQ);
}
void loop() {
static int phase = 0;
setPhase(phase);
phase += PHASE_INCREMENT;
if (phase >= 360) {
phase = 0;
}
delay(1); // Ritardo per controllare la frequenza
}
ho asseganto l'FSYNK al pin 31.
DATA al pin 11
CK al pin 13
Una volta compilato e trasferito il ocidce in ARDUINODUE vedo hce non genera nessuna RAMPA in uscita.
Forse dovrei usare il bus SPI di ARDUINODUE invece di usare i due pin DATA e CK sopraindicati?
Aiutatemi per favore a capire cosa ho sbagliato.

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)



ed a casa mia 2^28 = 268.435.456

