Differences

This shows you the differences between two versions of the page.

Link to this comparison view

fr:examples:can:wiper:annex3 [2010/03/03 17:09] – créée sdeniaudfr: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 "ATON_CAN"
 +//  Nom de fichier:  Aton_CAN.h
 +//**************************************************************
 +#ifndef _PELICAN_H
 +#define _PELICAN_H
 +#define SJA 0xB30280 /* Adresse de la carte SJA */
 +#define MODE *(unsigned char *) (SJA) /* Registre de controle */
 +#define COMMAND *(unsigned char *)  (SJA+0x01) /* Registre de commande */
 +#define STATUS *(unsigned char *)  (SJA+0x02) /* Registre status */
 +#define INTERRUPT *(unsigned char *)  (SJA+0x03) /* Registre d'interruption */
 +#define INTERRUPT_ENABLE *(unsigned char *)  (SJA+0x04)
 +#define BUS_TIMING_0 *(unsigned char *)  (SJA+0x06) /* Registre bus timing 0 */
 +#define BUS_TIMING_1 *(unsigned char *)  (SJA+0x07) /* Registre bus timing 1 */
 +#define OUTPUT_CONTROL *(unsigned char *)  (SJA+0x08) /* Registre output control */
 +#define ARBITRATION_LOST_CAPTURE *(unsigned char *) (SJA+0x0B)
 +#define ERROR_CODE_CAPTURE         *(unsigned char *) (SJA+0x0C)
 +#define ERROR_WARNING_LIMIT          *(unsigned char *) (SJA+0x0D)
 +#define RX_ERROR_COUNTER         *(unsigned char *) (SJA+0x0E)
 +#define TX_ERROR_COUNTER         *(unsigned char *) (SJA+0x0F)
 +#define RX_FRAME_INFO            *(unsigned char *) (SJA+0x10)
 +#define TX_FRAME_INFO            *(unsigned char *) (SJA+0x10)
 +
 +/* Mode SIMPLE FRAME */
 +#define RX_ID_1_S           *(unsigned char *) (SJA+0x11)
 +#define RX_ID_2_S           *(unsigned char *) (SJA+0x12)
 +#define RX_DATA_S           (unsigned char *) (SJA+0x13) /* Adresse debut message */
 +#define TX_ID_1_S           *(unsigned char *) (SJA+0x11)
 +#define TX_ID_2_S           *(unsigned char *) (SJA+0x12)
 +#define TX_DATA_S           (unsigned char *) (SJA+0x13) /* Adresse debut message */
 +
 +/* Mode EXTENDED */
 +#define RX_ID_1_E           *(unsigned char *) (SJA+0x11)
 +#define RX_ID_2_E           *(unsigned char *) (SJA+0x12)
 +#define RX_ID_3_E           *(unsigned char *) (SJA+0x13)
 +#define RX_ID_4_E           *(unsigned char *) (SJA+0x14)
 +#define RX_DATA_E           (unsigned char *) (SJA+0x15) /* Adresse debut message */
 +
 +#define TX_ID_1_E           *(unsigned char *) (SJA+0x11)
 +#define TX_ID_2_E           *(unsigned char *) (SJA+0x12)
 +#define TX_ID_3_E           *(unsigned char *) (SJA+0x13)
 +#define TX_ID_4_E           *(unsigned char *) (SJA+0x14)
 +#define TX_DATA_E           (unsigned char *) (SJA+0x15) /* Adresse debut message */
 +
 +/* Les 2 modes */
 +#define RX_MESSAGE_COUNTER          *(unsigned char *) (SJA+0x1D)
 +#define RX_BUFFER_START_ADDRESS     *(unsigned char *) (SJA+0x1E)
 +#define CLOCK_DIVIDER               *(unsigned char *) (SJA+0x1F)
 +
 +/* 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                  0x80
 +#define ERROR_STATUS                0x40
 +#define TRANSMIT_STATUS             0x20
 +#define RECEIVE_STATUS              0x10
 +#define TRANSMISSION_COMPLETE       0x08
 +#define TRANSMIT_BUFFER_STATUS      0x04
 +#define DATA_OVERRUN_STATUS         0x02
 +#define RECEIVE_BUFFER_STATUS       0x01
 +
 +// *************** 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);
 +
 +
 +
 +</code>
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0