![]() |
Envoie des coordonnées GPS et de l'heure via bus CAN
Par Bayoumi Chaïmaa et Comte-Gaz Quentin (encadré par M. Pepin)
|
Fichier contenant les fonctions liées au CAN. Plus de détails...
Fonctions | |
void | init_CAN (void) |
Initialisation du bus CAN ainsi que des mailboxes à utiliser. Plus de détails... | |
void | preparation_mailbox (unsigned char *data, int taille_data, int mbID) |
Préparation des mailbox d'envoie (uniquement l'heure et la position –> mailboxes 20 et 21) Plus de détails... | |
Variables | |
unsigned char | buffer_can [100] |
Buffer édité par l'UART uniquement quand la trame est valide et est utilisé par le CAN. | |
int | buffer_can_ready |
Protection évitant que l'UART édite le buffer_can[100] quand on remplie les mailboxes CAN. Plus de détails... | |
Fichier contenant les fonctions liées au CAN.
Vous trouverez ici les fonctions init_CAN() et preparation_mailbox().
void init_CAN | ( | void | ) |
Initialisation du bus CAN ainsi que des mailboxes à utiliser.
Baudrate : 500 000 KHz (SJW = 1, TSEG2 = 5, TSEG1 = 12, BRP = 9) Mailbox de transmission : 20 (heure, associée à l'ID 20) et 21 (position, associée à l'id 21) Mailbox de reception : 0 (heure, associée à l'ID 20) et 1 (position, associée à l'ID 21)
void preparation_mailbox | ( | unsigned char * | data, |
int | taille_data, | ||
int | mbID | ||
) |
Préparation des mailbox d'envoie (uniquement l'heure et la position –> mailboxes 20 et 21)
Cette fonction permet de remplir les registres contenant les 8 octets de données que l'on veut transmettre via bus CAN.
*data | Pointeur vers le tableau de charactères à envoyer |
taille_data | nombre d'octets à envoyer (si superieur à 8, alors on envoie 8 octets) |
mbID | Mailbox à remplir |
int buffer_can_ready |
Protection évitant que l'UART édite le buffer_can[100] quand on remplie les mailboxes CAN.
En théorie, cette variable est inutile car on a joué sur la priorité des interruptions pour garantir que le buffer sera valide lors d'une interruption CAN.