GY-63_MS5611/libraries/AD985X/examples/AD9850_multi/AD9850_multi.ino
2022-10-25 19:47:34 +02:00

115 lines
2.4 KiB
C++

//
// FILE: AD985X_multi.ino
// AUTHOR: Rob Tillaart
// PURPOSE: demo multi device
// URL: https://github.com/RobTillaart/AD985X
/*
Arduino AND AD985X
--------------------------------------------------
+--------+
(2) select ----| A |
| Q |------- FQ_UD AD985X[0]
(9) FQ_UD ----| B |
+--------+
+--------+
(3) select ----| A |
| Q |------- FQ_UD AD985X[1]
(9) FQ_UD ----| B |
+--------+
+--------+
(4) select ----| A |
| Q |------- FQ_UD AD985X[2]
(9) FQ_UD ----| B |
+--------+
*/
#include "AD985X.h"
// we want to control three hardware devices
// so we declare three software objects
AD9850 freqGen0;
AD9850 freqGen1;
AD9850 freqGen2;
float freq0 = 25000;
float freq1 = 30000;
float freq2 = 40000;
uint32_t maxFreq = 30000000;
uint32_t previousMillis0 = 0;
uint32_t previousMillis1 = 0;
uint32_t previousMillis2 = 0;
uint32_t period0 = 500;
uint32_t period1 = 1000;
uint32_t period2 = 2000;
uint32_t now;
void setup()
{
// OPEN SERIAL for messages and debugging etc
Serial.begin(115200);
Serial.println(__FILE__);
Serial.print("AD985X_LIB_VERSION: \t");
Serial.println(AD985X_LIB_VERSION);
// initialize three devices
freqGen0.begin(4, 9, 10);
freqGen0.powerUp();
freqGen1.begin(2, 9, 10);
freqGen1.powerUp();
freqGen2.begin(3, 9, 10);
freqGen2.powerUp();
// MAXFREQ is the same for all devices
maxFreq = freqGen0.getMaxFrequency();
Serial.println(maxFreq);
}
void loop()
{
// get the time
now = millis();
// do we need to update 0
if (now - previousMillis0 >= period0)
{
previousMillis0 = now;
freq0 = freq0 * 0.01;
freqGen0.setFrequencyF(freq0 * 0.01);
Serial.println( (uint32_t) freq0);
}
// do we need to update 1
if (now - previousMillis1 >= period1)
{
previousMillis1 = now;
freq1 = freq1 * 0.01;
freqGen1.setFrequencyF(freq1 * 0.01);
Serial.println( (uint32_t) freq1);
}
// do we need to update 2
if (now - previousMillis2 >= period2)
{
previousMillis0 = now;
freq2 = freq2 * 0.01;
freqGen2.setFrequencyF(freq2 * 0.01);
Serial.println( (uint32_t) freq2);
}
}
// -- END OF FILE --