Envoie des coordonnées GPS et de l'heure via bus CAN
Par Bayoumi Chaïmaa et Comte-Gaz Quentin (encadré par M. Pepin)
 Tout Fichiers Fonctions Variables Pages
Envoie des coordonnées GPS et de l'heure via bus CAN

Introduction

Le code présenté a été crée par Bayoumi Chaïmaa et Comte-Gaz Quentin.
Carte utilisée : Blackfin 537

Le projet consistait à :

UART-DMA (GPS)

Voici les différentes fonctions/interruptions liées à l'UART-DMA :

UART0_init(void) (Initialisation de l'UART 0 ainsi que le DMA (pour le gps))
UART0_read(void) (Lecture d'un octet via l'UART 0 (gps) sans attente)
UART0_send(char c) (Ecriture d'un octet via l'UART 0 (Hyperterminal du PC))
EX_INTERRUPT_HANDLER(Uart0_ISR) (Interruption de reception d'un char via l'UART 0 (GPS))
EX_INTERRUPT_HANDLER(Uart0_tx_DMA_ISR) (Interruption de transmission d'une trame via l'UART0-DMA9 (Hyperterminal du PC))
Init_Interrupts(void) (Fonction d'initialisation des interruptions CAN et UART0-DMA9 ainsi que leurs priorités associées)

Bus CAN

Voici les différentes fonctions/interruptions liées au bus CAN :

init_CAN(void) (Initialisation du bus CAN ainsi que des mailboxes à utiliser)
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))
EX_INTERRUPT_HANDLER(Can_tx_ISR) (Interruption de fin de transmission d'une trame CAN via le bus CAN)
EX_INTERRUPT_HANDLER(Can_rx_ISR) (Interruption de reception d'une demande CAN via le bus CAN)
Init_Interrupts(void) (Fonction d'initialisation des interruptions CAN et UART0-DMA9 ainsi que leurs priorités associées)

Variables globales

Voici les différentes variables globales utilisées :

buffer [100] (buffer pour l'UART)
buffer_can[100] (buffer pour le CAN)
buffer_can_ready (protection pour éviter d'envoyer une trame via CAN alors qu'elle est en cours d'édition via UART0)
flag_fin_can (flag de fin d'envoie CAN)
flag_irq_tx (flag de fin d'envoie UART0)
position_buffer (position du buffer de l'UART)

Pour plus d'informations sur ces variables, je vous conseille de consulter la page suivante :
Globals.html