BONJOUR
je suis sur un projet; c'est un générateur de fonction a base de AD9833.
je doit faire un programme en C sur mikroC qui permet de generer un signal sinusoidal,triangulaire ou carré de 1hz à 1Khz.j'utilise le PORTC (communication spi) d'un pic14f452.j'utilise la broche RC0 --> correspond au FSYNK de l'AD9833
RC3 --> correspond au SCLK de l'AD9833
RC4 --> correspond au SDATA de l'AD9833

Voici la datasheet du composant AD9833:

http://www.analog.com/en/rfif-compo...ts/product.html

Voici le programme, celui-ci ne marche pas est ce que quelque'un peu me dire pourquoi?

void main()
{

// Initialisation des variables


unsigned int Control_REG ;
unsigned char fort,faible;
unsigned int FREQ0_REG_LSB ;
unsigned char fort1,faible1;
unsigned int FREQ0_REG_MSB ;
unsigned char fort2,faible2;
unsigned int FREQ1_REG_LSB ;
unsigned char fort3,faible3;
unsigned int FREQ1_REG_MSB ;
unsigned char fort4,faible4;
unsigned int PHASE0 ;
unsigned char fort5,faible5;
unsigned int PHASE1 ;
unsigned char fort6,faible6;
unsigned int Control_REG_END;
unsigned char fort7,faible7;


// Initialisation du PORTC0
PORTC = 0; // Initialisation PORTC
//RC3, CLK en sortie
TRISC.RC3 = 0; // Configure PORTC3 en sortie

//RC5, SDO en sortie
TRISC.RC5 = 0; // Configure PORTC5 en sortie



// Initialisation de la SPI
SSPSTAT = 0x40; //bit 6 CKE=0, Bit 7 SMP=0
//l'envoi des données se fera sur front montant CLK

SSPCON1 = 0x20;
//Mise à 0 du bit CKP, au repos l'horloge est à l'état bas et mise à 1 du bit
//SSPEN (ACTIVE SPI)



//2108 69F1 4000 8000 8000 C000 E000 2008 =1K
//2100 6666 5999 8000 8000 C000 E000 2000 =10M

Control_REG = 0b0010000100000000;
fort = Control_REG >>8;
faible = Control_REG & 0x00FF;

FREQ0_REG_LSB = 0b0110100111110001;
fort1 = FREQ0_REG_LSB >>8;
faible1 = FREQ0_REG_LSB & 0x00FF;

FREQ0_REG_MSB = 0b0100000000000000;
fort2 = FREQ0_REG_MSB >>8;
faible2 = FREQ0_REG_MSB & 0x00FF;

FREQ1_REG_LSB = 0b1000000000000000;
fort3 = FREQ1_REG_LSB >>8;
faible3 = FREQ1_REG_LSB & 0x00FF;

FREQ1_REG_MSB = 0b1000000000000000;
fort4 = FREQ1_REG_MSB >>8;
faible4 = FREQ1_REG_MSB & 0x00FF;

PHASE0 = 0b1100000000000000;
fort5 = PHASE0 >>8;
faible5 = PHASE0 & 0x00FF;

PHASE1 = 0b1110000000000000;
fort6 = PHASE1 >>8;
faible6 = PHASE1 & 0x00FF;

Control_REG_END = 0b0010000100000000;
fort = Control_REG_END >>8;
faible = Control_REG_END & 0x00FF;

// Envoi d'une données

PORTC.RC0 = 0 ; // activate CS pin PORTC .AD9833_CS_PIN


SSPBUF=fort; //Mettre les données Control_REG dans SSPBUF
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission
SSPBUF=faible;
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission


SSPBUF=fort1; //Mettre les données Control_REG dans SSPBUF
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission
SSPBUF=faible1;
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission


SSPBUF=fort2; //Mettre les données Control_REG dans SSPBUF
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission
SSPBUF=faible2;
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission


SSPBUF=fort3; //Mettre les données Control_REG dans SSPBUF
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission
SSPBUF=faible3;
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission


SSPBUF=fort4; //Mettre les données Control_REG dans SSPBUF
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission
SSPBUF=faible4;
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission


SSPBUF=fort5; //Mettre les données Control_REG dans SSPBUF
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission
SSPBUF=faible5;
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission


SSPBUF=fort6; //Mettre les données Control_REG dans SSPBUF
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission
SSPBUF=faible6;
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission


SSPBUF=fort7; //Mettre les données Control_REG dans SSPBUF
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission
SSPBUF=faible7;
while (!SSPSTAT.BF == 1); //Attendre la Fin de l'emission


PORTC.RC0 = 1 ; // déactivé PORTC.AD9833_CS_PIN

MERCI D'AVANCE