Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //++++++++++++++++++++++++++++++++++++ESP32 le step fréquence est un multiple de 122Hz cad si le step est de 10, la fréquence est égale à 1220Hz ++++++++++++++++++++++++++++++++++++++
- //++++++++++++++++++++++++++++++++++++++++++++++++A UTILISER AVEC LE CODE ESP32SIWAVE00003_AnnexeRampeXIAO POUR l4ESP32++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- //==================================================================claude.dufourmont@laposte.net======================================================================================
- //===========================================================https://www.youtube.com/c/ClaudeDufourmont================================================================================
- //..........Ce petit dispositif est très intéressant en tant que petit générateur BF de labo, personnellement je le garde monté sur breadboard (en incluant ou pas les MCU)............
- //===========================================================================FONCTIONNE================================================================================================
- #include "soc/sens_reg.h"
- #include "driver/dac.h"
- #define potFrequence 32 // potentiomètre sur GPIO 32 pour régler la fréquence.
- int frequence_step;
- int ValF;
- void setup()
- {
- }
- void loop()
- {
- //|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- // Ci-dessous les 4 fonctions à sélectionner selon la gamme de fréquence souhaitée
- //|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- //sinwave01 (); //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- //sinwave02 (); //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- sinwave03 (); //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- //sinwave04 (); //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- }
- //|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- void sinwave01 ()
- {
- ValF = (int)analogRead(potFrequence); // ATTENTION : CE SIGNAL PEUT AUSSI ETRE UNE RAMPE TRES BASSE FREQUENCE EN PROVENANCE DU SEEEDUINO XIAO
- frequence_step = (int)(map (ValF, 0, 1023, 100, 1023)/1); // La valeur de frequence_step (entière) est multipliée par 122Hz pour avoir la fréquence de la sinusïde
- SET_PERI_REG_BITS(SENS_SAR_DAC_CTRL1_REG, 0x0000FFFF ,frequence_step,0); // Ecriture de la valeur "frequence_step" dans le registre SENS_SW_STEP
- SET_PERI_REG_MASK(SENS_SAR_DAC_CTRL1_REG, BIT(16)); // Mise à 1 du BIT 16 dans le registre SENS_SW_TONE_EN pour sélectionner le CW generateur
- SET_PERI_REG_MASK(SENS_SAR_DAC_CTRL2_REG, BIT(24)); // Mise à 1 du BIT 24 du registre SENS_DAC_CW_EN1 pour envoyer le signal vers le DAC 1
- SET_PERI_REG_BITS(SENS_SAR_DAC_CTRL2_REG, 0x00000003 ,2,20); // Mise à 0 du BIT 20 et et 1 du BIT 21 du registre SENS_DAC_INV1 pour inverser le MSB (BIT de poids Fort) ==> centrage sinusoïde
- dac_output_enable (DAC_CHANNEL_1); // Activation du DAC 1
- }
- void sinwave02 ()
- {
- ValF = (int)analogRead(potFrequence); // ATTENTION : CE SIGNAL PEUT AUSSI ETRE UNE RAMPE TRES BASSE FREQUENCE EN PROVENANCE DU SEEEDUINO XIAO
- frequence_step = (int)(map (ValF, 0, 1023, 100, 1023)/5); // Le talon bas (100) de la conversion du map est là pour avoir toujours un step >=0 (ici 20)
- SET_PERI_REG_BITS(SENS_SAR_DAC_CTRL1_REG, 0x0000FFFF ,frequence_step,0);
- SET_PERI_REG_MASK(SENS_SAR_DAC_CTRL1_REG, BIT(16));
- SET_PERI_REG_MASK(SENS_SAR_DAC_CTRL2_REG, BIT(24));
- SET_PERI_REG_BITS(SENS_SAR_DAC_CTRL2_REG, 0x00000003 ,2,20);
- dac_output_enable (DAC_CHANNEL_1);
- }
- void sinwave03 ()
- {
- ValF = (int)analogRead(potFrequence); // ATTENTION : CE SIGNAL PEUT AUSSI ETRE UNE RAMPE TRES BASSE FREQUENCE EN PROVENANCE DU SEEEDUINO XIAO
- frequence_step = (int)(map (ValF, 0, 1023, 20, 1023)/10); // Fréquence max : int (1023/10)* 122 cad 12451 Hz
- SET_PERI_REG_BITS(SENS_SAR_DAC_CTRL1_REG, 0x0000FFFF ,frequence_step,0);
- SET_PERI_REG_MASK(SENS_SAR_DAC_CTRL1_REG, BIT(16));
- SET_PERI_REG_MASK(SENS_SAR_DAC_CTRL2_REG, BIT(24));
- SET_PERI_REG_BITS(SENS_SAR_DAC_CTRL2_REG, 0x00000003 ,2,20);
- dac_output_enable (DAC_CHANNEL_1);
- }
- void sinwave04 ()
- {
- ValF = (int)analogRead(potFrequence); // ATTENTION : CE SIGNAL PEUT AUSSI ETRE UNE RAMPE TRES BASSE FREQUENCE EN PROVENANCE DU SEEEDUINO XIAO
- frequence_step = (int)(map (ValF, 0, 1023, 200, 1023)/100); // Fréquence min : int (200/100)* 122 cad 244 Hz
- SET_PERI_REG_BITS(SENS_SAR_DAC_CTRL1_REG, 0x0000FFFF ,frequence_step,0);
- SET_PERI_REG_MASK(SENS_SAR_DAC_CTRL1_REG, BIT(16));
- SET_PERI_REG_MASK(SENS_SAR_DAC_CTRL2_REG, BIT(24));
- SET_PERI_REG_BITS(SENS_SAR_DAC_CTRL2_REG, 0x00000003 ,2,20);
- dac_output_enable (DAC_CHANNEL_1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement