bruno LARNAUDIE
/
Can
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 /*Configuration des LED en sortie num�rique*/ 00004 00005 DigitalOut led_write(LED1); 00006 DigitalOut led_read(LED4); 00007 DigitalOut led_can(LED3); 00008 00009 Serial pc(p9, p10); 00010 CAN can(p30, p29); /*Configuration des ports du CAN : rd p30 td p29*/ 00011 Ticker ticker; /*Fonction timer*/ 00012 Ticker ticker1; /*Fonction timer*/ 00013 00014 /*Fonction de configuration du message d'envoi*/ 00015 char compteur=0; 00016 void send(){ 00017 00018 /*Initialisation des variables*/ 00019 00020 char message[8]={compteur,0x10,0x11,0x10,0x11,0x10,0x11,0x00}; /*Initialisation du tableau de donn�e du message � envoyer*/ 00021 CANMessage canmsg = CANMessage(); /*Variable de type CANMessage*/ 00022 char i; /*Variable compteur i*/ 00023 00024 /*Caract�ristique du message � envoyer sur le CAN*/ 00025 00026 canmsg.id=0x001; /*L'identification du message*/ 00027 canmsg.len=8; /*Longeur de la trame en octet*/ 00028 canmsg.format=CANStandard; /*Format de la trame CANStandart 11 octet*/ 00029 canmsg.type=CANData; /*Type de la trame CANData*/ 00030 00031 for(i=0;i<8;i++){ /*Copie du tableau de donn�e dans le tableau du messge*/ 00032 canmsg.data[i]=message[i]; 00033 } 00034 led_write=can.write(canmsg); /*Si la transmission se fait sans error, allume une led*/ 00035 00036 compteur++; 00037 }/*Fin Fontion*/ 00038 00039 void send1(){ 00040 00041 /*Initialisation des variables*/ 00042 00043 char message[8]={compteur,0x20,0x22,0x20,0x22,0x20,0x22,0x20}; /*Initialisation du tableau de donn�e du message � envoyer*/ 00044 CANMessage canmsg = CANMessage(); /*Variable de type CANMessage*/ 00045 char i; /*Variable compteur i*/ 00046 00047 /*Caract�ristique du message � envoyer sur le CAN*/ 00048 00049 canmsg.id=0x010; /*L'identification du message*/ 00050 canmsg.len=8; /*Longeur de la trame en octet*/ 00051 canmsg.format=CANStandard; /*Format de la trame CANStandart 11 octet*/ 00052 canmsg.type=CANData; /*Type de la trame CANData*/ 00053 00054 for(i=0;i<8;i++){ /*Copie du tableau de donn�e dans le tableau du messge*/ 00055 canmsg.data[i]=message[i]; 00056 } 00057 led_write=can.write(canmsg); /*Si la transmission se fait sans error, allume une led*/ 00058 00059 compteur++; 00060 }/*Fin Fontion*/ 00061 00062 /*DEBUT PROGRAMME*/ 00063 00064 int main() { 00065 00066 char message[8]={0x00,0x10,0x11,0x10,0x11,0x10,0x11,0x00}; /*Initialisation du tableau de donn�e du message � envoyer*/ 00067 CANMessage canmsg = CANMessage(); /*Variable de type CANMessage*/ 00068 char i; 00069 can.frequency(1000000); /*Baud rate : kbits/s */ 00070 pc.baud(9600); 00071 canmsg.id=0x001; /*L'identification du message*/ 00072 canmsg.len=8; /*Longeur de la trame en octet*/ 00073 canmsg.format=CANStandard; /*Format de la trame CANStandart 11 octet*/ 00074 canmsg.type=CANData; 00075 for(i=0;i<8;i++){ 00076 canmsg.data[i]=message[i]; 00077 } 00078 while(1){ /*Variable compteur i*/ 00079 00080 /*Type de la trame CANData*/ 00081 led_write=can.write(canmsg); 00082 wait(0.1); 00083 00084 }/*Fin while*/ 00085 00086 } 00087 /*FIN PROGRAMME*/
Generated on Sun Jul 17 2022 01:44:50 by 1.7.2