This shows you the differences between two versions of the page.
| fr:examples:can:wiper:annex3 [2010/03/03 17:09] – créée sdeniaud | fr:examples:can:wiper:annex3 [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Annexe 3 ====== | ||
| + | ===== Fichier de définition propre à la carte ATON ===== | ||
| + | |||
| + | |||
| + | <code c> | ||
| + | |||
| + | // ************************************************************* | ||
| + | // Fichier de définition pour carte controleur CAN " | ||
| + | // Nom de fichier: | ||
| + | // | ||
| + | #ifndef _PELICAN_H | ||
| + | #define _PELICAN_H | ||
| + | #define SJA 0xB30280 / | ||
| + | #define MODE *(unsigned char *) (SJA) / | ||
| + | #define COMMAND *(unsigned char *) (SJA+0x01) / | ||
| + | #define STATUS *(unsigned char *) (SJA+0x02) / | ||
| + | #define INTERRUPT *(unsigned char *) (SJA+0x03) / | ||
| + | #define INTERRUPT_ENABLE *(unsigned char *) (SJA+0x04) | ||
| + | #define BUS_TIMING_0 *(unsigned char *) (SJA+0x06) / | ||
| + | #define BUS_TIMING_1 *(unsigned char *) (SJA+0x07) / | ||
| + | #define OUTPUT_CONTROL *(unsigned char *) (SJA+0x08) / | ||
| + | #define ARBITRATION_LOST_CAPTURE *(unsigned char *) (SJA+0x0B) | ||
| + | #define ERROR_CODE_CAPTURE | ||
| + | #define ERROR_WARNING_LIMIT | ||
| + | #define RX_ERROR_COUNTER | ||
| + | #define TX_ERROR_COUNTER | ||
| + | #define RX_FRAME_INFO | ||
| + | #define TX_FRAME_INFO | ||
| + | |||
| + | /* Mode SIMPLE FRAME */ | ||
| + | #define RX_ID_1_S | ||
| + | #define RX_ID_2_S | ||
| + | #define RX_DATA_S | ||
| + | #define TX_ID_1_S | ||
| + | #define TX_ID_2_S | ||
| + | #define TX_DATA_S | ||
| + | |||
| + | /* Mode EXTENDED */ | ||
| + | #define RX_ID_1_E | ||
| + | #define RX_ID_2_E | ||
| + | #define RX_ID_3_E | ||
| + | #define RX_ID_4_E | ||
| + | #define RX_DATA_E | ||
| + | |||
| + | #define TX_ID_1_E | ||
| + | #define TX_ID_2_E | ||
| + | #define TX_ID_3_E | ||
| + | #define TX_ID_4_E | ||
| + | #define TX_DATA_E | ||
| + | |||
| + | /* Les 2 modes */ | ||
| + | #define RX_MESSAGE_COUNTER | ||
| + | #define RX_BUFFER_START_ADDRESS | ||
| + | #define CLOCK_DIVIDER | ||
| + | |||
| + | /* acceptance code et mask en mode reset uniquement */ | ||
| + | #define ACCEPT_CODE0 *(unsigned char *) (SJA+0x10) | ||
| + | #define ACCEPT_CODE1 *(unsigned char *) (SJA+0x11) | ||
| + | #define ACCEPT_CODE2 *(unsigned char *) (SJA+0x12) | ||
| + | #define ACCEPT_CODE3 *(unsigned char *) (SJA+0x13) | ||
| + | |||
| + | #define ACCEPT_MASK0 *(unsigned char *) (SJA+0x14) | ||
| + | #define ACCEPT_MASK1 *(unsigned char *) (SJA+0x15) | ||
| + | #define ACCEPT_MASK2 *(unsigned char *) (SJA+0x16) | ||
| + | #define ACCEPT_MASK3 *(unsigned char *) (SJA+0x17) | ||
| + | |||
| + | /*** Configurations des bits des registres ***/ | ||
| + | /* Registre STATUS */ | ||
| + | #define BUS_STATUS | ||
| + | #define ERROR_STATUS | ||
| + | #define TRANSMIT_STATUS | ||
| + | #define RECEIVE_STATUS | ||
| + | #define TRANSMISSION_COMPLETE | ||
| + | #define TRANSMIT_BUFFER_STATUS | ||
| + | #define DATA_OVERRUN_STATUS | ||
| + | #define RECEIVE_BUFFER_STATUS | ||
| + | |||
| + | // *************** TYPES ******************** | ||
| + | // *************************************************************** | ||
| + | // * DECLARATIONS | ||
| + | // * des prototypes des fonctions spécifiques CAN - SJA1000 | ||
| + | // ***************************************************************** | ||
| + | /** Initialisation du SJA1000 en mode PeliCAN. */ | ||
| + | void init_sja1000_peli_acc (char acc_code0, char acc_code1, char acc_code2, char acc_code3, | ||
| + | char acc_mask0, char acc_mask1, char acc_mask2, char acc_mask3); | ||
| + | /** Initialisation du SJA1000 en mode PeliCAN. */ | ||
| + | void init_sja1000_peli (); | ||
| + | Trame Receive_Trame(); | ||
| + | /** Envoi d'une trame */ | ||
| + | void send_trame_peli (Message mes); | ||
| + | /** Reception d'un message. */ | ||
| + | Message receive_trame_peli (); | ||
| + | /** Affichage des regsitres en PeliCAN */ | ||
| + | void print_reg_peli (); | ||
| + | /* Affiche l'etat du STATUS REGISTER */ | ||
| + | void show_status (); | ||
| + | /* Affiche le message passe en parametres sur une ligne */ | ||
| + | void print_little (Message mes); | ||
| + | // initialisation de la carte CAN ATON | ||
| + | void Init_Aton_CAN(); | ||
| + | char Ecrire_Trame(Trame message); | ||
| + | char Lire_Trame(Trame *message_recu); | ||
| + | void Affiche_Trame(Trame trame); | ||
| + | |||
| + | |||
| + | |||
| + | </ | ||