Bonsoir à tous,
En ce moment je développe un projet qui utilise le bus SPI d'un micro contrôleur ATMEL ref ATmega 8535.
Les circuits de réception sont des 74HC164 montés à la chaine.
L'horloge et le reset sont envoyés simultanément dans tous les CI.
J'ai 5 CI sur le BUS.
Tout fonctionne vraiment très bien, mais comme je me suis débrouillé pour programmer et faire fonctionner ce type de communication, j'ai programmé " comme je pensais " et donc je voudrais simplement que vous jetiez un oeuil sur mon bout de programme histoire de me dire :
1) Si ma méthode générale est bonne.
2) Si on peu améliorer mon écriture.
3) Si je n'ai rien oublié.
Donc voici mes sous programmes :
Je précise que j'aurais besoin très souvent d'envoyer des données au cour du déroulement de mon programme.
Dans ma boucle while principale, je donne une valeur à " a " et une à " b " et ensuite j'appel le sous programme avec " trans () "Code:void SPI_MasterTransmit(char cData) { SPDR = cData; // écris dans le régistre SPDR la valeur de cData while(!(SPSR & (1<<SPIF))); // attend la fin de la transmission }; void trans (void) { SPI_MasterTransmit(a); SPI_MasterTransmit(b); };
Bien évidement ce programme montre la transmission de seulement 2 valeurs 8 bits.
Je ne connaissais absolument pas ce type de communication jusqu'à ce que quelqu'un de ce forum me l'apprenne et du coup j'ai cherché plusieurs semaines et j'y suis arrivé mais ... est-ce un carnage ?
Merci pour vos futures réponses
-----