bruno LARNAUDIE
/
Can
Diff: main.cpp
- Revision:
- 0:85bca9d6be51
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Aug 28 16:17:08 2011 +0000 @@ -0,0 +1,87 @@ +#include "mbed.h" + +/*Configuration des LED en sortie num�rique*/ + +DigitalOut led_write(LED1); +DigitalOut led_read(LED4); +DigitalOut led_can(LED3); + +Serial pc(p9, p10); +CAN can(p30, p29); /*Configuration des ports du CAN : rd p30 td p29*/ +Ticker ticker; /*Fonction timer*/ +Ticker ticker1; /*Fonction timer*/ + +/*Fonction de configuration du message d'envoi*/ +char compteur=0; +void send(){ + + /*Initialisation des variables*/ + + char message[8]={compteur,0x10,0x11,0x10,0x11,0x10,0x11,0x00}; /*Initialisation du tableau de donn�e du message � envoyer*/ + CANMessage canmsg = CANMessage(); /*Variable de type CANMessage*/ + char i; /*Variable compteur i*/ + + /*Caract�ristique du message � envoyer sur le CAN*/ + + canmsg.id=0x001; /*L'identification du message*/ + canmsg.len=8; /*Longeur de la trame en octet*/ + canmsg.format=CANStandard; /*Format de la trame CANStandart 11 octet*/ + canmsg.type=CANData; /*Type de la trame CANData*/ + + for(i=0;i<8;i++){ /*Copie du tableau de donn�e dans le tableau du messge*/ + canmsg.data[i]=message[i]; + } + led_write=can.write(canmsg); /*Si la transmission se fait sans error, allume une led*/ + + compteur++; +}/*Fin Fontion*/ + +void send1(){ + + /*Initialisation des variables*/ + + char message[8]={compteur,0x20,0x22,0x20,0x22,0x20,0x22,0x20}; /*Initialisation du tableau de donn�e du message � envoyer*/ + CANMessage canmsg = CANMessage(); /*Variable de type CANMessage*/ + char i; /*Variable compteur i*/ + + /*Caract�ristique du message � envoyer sur le CAN*/ + + canmsg.id=0x010; /*L'identification du message*/ + canmsg.len=8; /*Longeur de la trame en octet*/ + canmsg.format=CANStandard; /*Format de la trame CANStandart 11 octet*/ + canmsg.type=CANData; /*Type de la trame CANData*/ + + for(i=0;i<8;i++){ /*Copie du tableau de donn�e dans le tableau du messge*/ + canmsg.data[i]=message[i]; + } + led_write=can.write(canmsg); /*Si la transmission se fait sans error, allume une led*/ + + compteur++; +}/*Fin Fontion*/ + +/*DEBUT PROGRAMME*/ + +int main() { + + char message[8]={0x00,0x10,0x11,0x10,0x11,0x10,0x11,0x00}; /*Initialisation du tableau de donn�e du message � envoyer*/ + CANMessage canmsg = CANMessage(); /*Variable de type CANMessage*/ + char i; + can.frequency(1000000); /*Baud rate : kbits/s */ + pc.baud(9600); + canmsg.id=0x001; /*L'identification du message*/ + canmsg.len=8; /*Longeur de la trame en octet*/ + canmsg.format=CANStandard; /*Format de la trame CANStandart 11 octet*/ + canmsg.type=CANData; + for(i=0;i<8;i++){ + canmsg.data[i]=message[i]; + } + while(1){ /*Variable compteur i*/ + + /*Type de la trame CANData*/ + led_write=can.write(canmsg); + wait(0.1); + + }/*Fin while*/ + +} +/*FIN PROGRAMME*/