User manual
18 15
Transfère deux bytes de données, qui seront transmis dans une variable 16 bits sur le 
bus SPI, en même temps que le high byte. 
Transfère jusqu’à 255 bytes sur  un  bus SPI d’un grand circuit  prétraité. Le  nombre  de 
bytes à transférer de ce circuit « buffer » est à mentionner avec le paramètre « length ». 
Lit un byte de donnée du bus SPI.
Lit deux bytes du bus SPI et les restitue en tant que variable 16 bits. Le byte lu en priorité 
est le High Byte.
Lit jusqu’à 255 bytes d’un bus SPI d’un grand circuit prétraité. 
Vous  n’avez  normalement  pas  besoin  des  fonctions  SPI. Celles-ci  seront  toutefois 
utilisées  dans  les  prochaines  fonctions  que  nous  allons  décrire,  afin  d’avoir  accès  à 
l’EEPROM connecté sur le bus SPI.
Lit un byte unique à l’adresse « memAddr » depuis l’EEPROM. L’adresse peut se trouver 
dans le domaine de 0 à 32767 de notre grand EEPROM 32 Ko. 
Exemple :
Lit jusqu’à 255 bytes (length) débutant à l’adresse « startAdr » dans un réseau prédéfini 
(buffer).
Sauvegarde un byte (donnée) à une adresse précise (memAddr) de l’EEPROM.
sauvegarde  jusqu’à  64  bytes  (lenght)  dans  le  réseau  « buffer »  commençant  par 
« startAddr » de l’EEPROM. 
Veuillez  respecter la  limite de  64 bytes maximums inscriptibles en une  seule 
fois. 64 bytes correspondent à la taille de la page (Page size) de l’EEPROM et 
rien de plus ne peut être  mis en mémoire tampon avant que les données ne 
soient écrites. De plus, les données qui doivent être gravées les unes après les 
autres doivent tenir dans une page, c’est-à-dire entre 0 et 63, 64 et 127, 128 et 
191… ! En cas de dépassement de la taille de la page, l’EEPROM réécrit les 
données depuis le début de la page. Bien évidemment, vous avez la possibilité 
de  commencer  à  écrire  par  exemple  à  partir  de  l’adresse  50,  mais  si  vous 
souhaitez  graver  plus de  14  Bytes, le  compteur  d’adresse  recommencera  à 
zéro et gravera par-dessus les données existantes dans la mémoire tampon. 
À la lecture des données de l’EEPROM, il  n’est pas nécessaire de veiller à la 
taille de la page et vous pouvez, en théorie, lire le contenu entier de l’EEPROM 
en une seule fois.
Dans le cas présent, la valeur de touche n’est restituée uniquement lorsque la touche 
a été pressée puis relâchée. Cette fonction aussi  ne bloque pas le flux de  programme 
– vous n’aurez pas à attendre une boucle pour que la touche soit relâchée. 
3.4. Bipeur
Le signaleur du RP6-M32 peut être contrôlé grâce à cette fonction :
Cette une fonction non bloquante – Elle donne la hauteur et le laps de temps pour un 
son généré et ensuite abandonné. Le bipeur se coupe automatiquement après un laps 
de temps  donné. Chaque  appel  supplémentaire  de  cette  fonction écrase les  réglages. 
Pour jouer des mélodies ou des tonalités, utilisez le macro suivant :
Les  hauteurs  de  sons,  les  laps  de  temps  et  les pauses  après  le  son  peuvent être  ici 
configurés.  Le  macro  utilise mSleep  pour générer  les  pauses  –  ainsi cela  dure time  + 
delay millisecondes jusqu’à ce que le programme continue. 
Si  vous  ne  souhaitez  pas  régler  de  pause  ou  de  durée  de  sons,  vous  pouvez  régler 
uniquement la hauteur de sons avec ceci : 
Très pratique pour générer un son continu (par exemple une sirène d’alarme). Attention : 
toutes les fonctions du bipeur n’acceptent que les valeurs de pitch dans une plage de 0 à 
255, 255 représentant la fréquence maximale. 
3.5. Capteur microphone
Le RP6 CONTROL ne produit pas uniquement des sons, mais y réagit également. Pas 
selon  la  hauteur  de sons mais selon le  volume. Vous  pouvez par  exemple  faire partir 
votre robot en produisant un bruit fort. 
Le circuit est conçu comme « peak-detektor ». Il sera mesuré dans une période variable 
l’amplitude  du  signal  microphone  et  la  valeur  maximale  sera  conservée. Le  micro 
contrôleur peut être mesuré avec un ADC de la valeur maximale, puis effacé. La valeur 
maximale sera rapidement sauvegardée dans un petit condensateur et afin « d’effacer » 
cette valeur maximale, il faudra décharger ce condensateur. 
Avec la fonction suivant : 
Vous devez d’abord décharger le condensateur. La fonction 
Vous permet de déterminer la valeur maximale  dans un intervalle précis. Après que la 
valeur soit mesurée, la fonction appelle directement dischargePeakDetector().
Vous pouvez voir comment cela fonctionne dans l’un des programmes d’exemple. 










