Bonsoir
Après vérification, il ne s'agit pas du problème énoncé: le pin fonctionne bien, il sort 0 ou 1 correctement.
Je ne pense pas qu'il s'agisse d'un problème de hard, mais plutôt de programme.
En fait, lorsque la fonction "mute" est active (low), le signal de sortie est amputé d'une partie du signal, pendant un laps de temps très court.Je poste une capture de lecture à l'oscillo du signal de sortie (1kHz en entrée, mute active).
Le code que j'utilise est très simple (C/C d'un extrait qui me semble lié au transfert SPI car il y a plus de 500 lignes en tout je ne voudrai pas que vous passiez 1 h à déchiffrer tout mon charabia ![]()
Je ne sais pas si la description de mon problème vous semble clair? En tout cas merci de vous y pencher!
#include <SPI.h>
const int slaveSelectPin = 53;
const int POT = 51; // assignation pin SPI potar
const int MUTE = 50; //assignation pin commande MUTE PGA
const int ZCEN = 12; //assignation pin commande ZCEN PGA
int niveau=0;
pinMode (slaveSelectPin, OUTPUT);
pinMode(POT, OUTPUT); // assigne pin de commande du potar
......
digitalPotWrite(niveau);
}
void digitalPotWrite( int niveau) {
SPI.beginTransaction(SPISettings(6250000, MSBFIRST, SPI_MODE0));
digitalWrite(slaveSelectPin, LOW);
SPI.transfer(niveau);
SPI.transfer(niveau);
digitalWrite(slaveSelectPin, HIGH);
}
