Bonjour,
je souhaite réaliser une communication SPI sur 32 bit . J'ai besoin que le data, l'adresse et le CRC qui composera mon signal MOSI soit rentrer par l'utilisateur, je souhaiterais donc les accoler pour les envoyer au capteur. Comment puis-je réaliser cela en code ?
Avant de parler code, il faudrait peut-être parler matériel.
Quel moyen de saisie pour entrer les différentes informations?
Quel est ton problème, la saisie? la concaténation des données? leur émission?
Mon problème est au niveau de la concaténation des données. Je ne sais pas comment faire en sorte d'avoir une chaine de 32 binaires.
Pour l'instant j'ai réalisée 3 octets mais ça me pause un problème pour calculer mon CRC.
faut juste faire attention - idéalement on met les mois dans le format destination et on shift ensuite, comme ça on est sûr d'avoir des 0 là où il faut
Ensuite que donnent les valeurs des 4 octets ?
Mon signal mosi doit être =
0 0 A A A A A 0 0 0 d d d d d d d d d d d d d d d d 0 C C C C C
avec A mon address, d mon data et C mon CRC
j'ai ensuite découpé en octet
|Octet 1 :|0|0|A|A|A|A|A|0|
|Octet 2 :|0|0|d|d|d|d|d|d|
|Octet 3 :|d|d|d|d|d|d|d|d|
|Octet 4 :|d|d|0|CRC|CRC|CRC|CRC|CRC|
Je souhaite refaire la chaine de 32 bit pour pouvoir calculer le CRC car je doit avoir le bit 30 au 5. Je me suis dit que ce serait le plus simple. Sinon je peut faire des boucles pour chaques octets ?
Ma question était : qu'est-ce qui s'affiche avec tes println ?
Mais, au final si tu as déjà des variables contenant le AAAA, dddd et CCCC, il est peut-être plus simple de les intégrer directement dans la chaine.
Dans ton exemple, tu as :
Supposons que le CRC vaut 0x1F au maximum (0b11111), disons 0x15 par exemple.
Tu devrais pouvoir faire un truc comme ceci :