Arexx RP6 ROBOT SYSTEM RP6 CONTROL M32 Manuel D'utilisation page 17

Table des Matières

Publicité

RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library
Comme déjà dit, normalement vous n'avez pas besoin des fonctions SPI mais celles-ci
seront utilisées dans les fonctions décrites ci-après afin d'accéder à l'EEPROM connec-
té sur le bus SPI.
uint8_t SPI_EEPROM_readByte(uint16_t memAddr)
Lit un seul octet à l'adresse « memAddr » de l'EEPROM. Pour notre EEPROM de 32 kb,
l'adresse peut se situer entre 0 et 32767,
Exemple:
// Dans la ligne suivante, nous lisons un octet à l'adresse 13860 de l'EEPROM:
uint8_t data = SPI_EEPROM_readByte(13860);
void SPI_EEPROM_readBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length)
En commençant par l'adresse « startAdr », lit jusqu'à 255 octets (length) dans un ta-
bleau de dimension suffisante (buffer).
void SPI_EEPROM_writeByte(uint16_t memAddr, uint8_t data)
Mémorise un octet (data) dans une adresse donnée (memAdr) dans l'EEPROM.
void SPI_EEPROM_writeBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length)
Mémorise jusqu'à 64 octets (length) dans le tableau « buffer » en commençant par
« startAddr » dans l'EEPROM.
N'oubliez pas que seulement 64 octets peuvent être écrits en même
temps. 64 octets correspondent à la dimension d'une page (pagesize)
de l'EEPROM et il est impossible de l'enregistrer temporairement avant
de l'écrire. En plus, les données qu'il faut écrire à la suite doivent tou-
jours se trouver sur la même page, donc p.ex. entre 0 et 63, 64 et
127, 128 et 191...! Si la dimension de page est dépassée, l'EEPROM
écrase les données au début de la page en cours. Vous êtes libre de
commencer à écrire p.ex. à l'adresse 50 mais s'il faut écrire plus de 14
octets, le compteur d'adresse recommence à 0 et écrase les données
qui s'y trouvent déjà.
Lors de la lecture des données de l'EEPROM, la dimension de page n'a
pas d'importance et vous pouvez théoriquement lire la totalité de l'EE-
PROM en une seule fois.
Il faut 5ms à l'EEPROM pour écrire les données. Pendant cette période, vous ne pou -
vez pas accéder à l'EEPROM. Afin de connaître l'état actuel, vous pouvez utiliser la
fonction
uint8_t SPI_EEPROM_getStatus(void);
Ainsi, avec
if(!(SPI_EEPROM_getStatus() & SPI_EEPROM_STAT_WIP)) {
// ...
}
vous pouvez interroger pour savoir si l'EEPROM n'est plus occupé à écrire des don-
nées. Cependant, les fonctions s'en chargent déjà d'elles-mêmes. Vous n'avez besoin
de cette fonction qui si vous voulez faire d'autres choses pendant ce temps.
- 17 -

Publicité

Table des Matières
loading

Produits Connexes pour Arexx RP6 ROBOT SYSTEM RP6 CONTROL M32

Table des Matières