ERS4 / Mbed 2 deprecated ER4seance3

Dependencies:   mbed

Dependents:   ER4 ER4publish

Committer:
NicolasG
Date:
Wed Feb 11 14:47:33 2015 +0000
Revision:
0:abcba303c42b
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NicolasG 0:abcba303c42b 1 #include "mbed.h"
NicolasG 0:abcba303c42b 2 #define ID 0x300
NicolasG 0:abcba303c42b 3 Ticker ticker1;
NicolasG 0:abcba303c42b 4 Ticker ticker2;
NicolasG 0:abcba303c42b 5 DigitalOut led1(LED1);
NicolasG 0:abcba303c42b 6 DigitalOut led2(LED2);
NicolasG 0:abcba303c42b 7 DigitalOut led3(LED3);
NicolasG 0:abcba303c42b 8 DigitalOut led4(LED4);
NicolasG 0:abcba303c42b 9 CAN can(p30, p29); //CAN du mbed shield
NicolasG 0:abcba303c42b 10 char counter = 0;
NicolasG 0:abcba303c42b 11 char tabVal[10][8];
NicolasG 0:abcba303c42b 12 int index=0;
NicolasG 0:abcba303c42b 13
NicolasG 0:abcba303c42b 14
NicolasG 0:abcba303c42b 15 AnalogIn bouton(p15); // pin 15 pour ADC0
NicolasG 0:abcba303c42b 16
NicolasG 0:abcba303c42b 17 void send() {
NicolasG 0:abcba303c42b 18 CANMessage msgS;
NicolasG 0:abcba303c42b 19 msgS.id=ID;
NicolasG 0:abcba303c42b 20 msgS.len=1;
NicolasG 0:abcba303c42b 21 if (counter == 0) { //On envoie des '0' et des '1'
NicolasG 0:abcba303c42b 22 counter=1;
NicolasG 0:abcba303c42b 23 }
NicolasG 0:abcba303c42b 24 else {
NicolasG 0:abcba303c42b 25 counter=0;
NicolasG 0:abcba303c42b 26 }
NicolasG 0:abcba303c42b 27 msgS.data[0]=counter;
NicolasG 0:abcba303c42b 28 if(can.write(msgS)){
NicolasG 0:abcba303c42b 29 led3 = counter;// On allume la led3 quand on envoie
NicolasG 0:abcba303c42b 30 //printf("Message sent: %d\n", counter);// On affiche
NicolasG 0:abcba303c42b 31 }
NicolasG 0:abcba303c42b 32 }
NicolasG 0:abcba303c42b 33
NicolasG 0:abcba303c42b 34 void reader(void){
NicolasG 0:abcba303c42b 35 CANMessage msgR;
NicolasG 0:abcba303c42b 36 can.read(msgR);
NicolasG 0:abcba303c42b 37
NicolasG 0:abcba303c42b 38 switch(msgR.id){
NicolasG 0:abcba303c42b 39
NicolasG 0:abcba303c42b 40 case 0x100 :
NicolasG 0:abcba303c42b 41 led1 = msgR.data[0];
NicolasG 0:abcba303c42b 42 //printf("Message received: id= 0x%x _ data= %d _ len = %d type= %d _ format= %d \n",msgR.id,msgR.data[0],msgR.len,msgR.type,msgR.format);
NicolasG 0:abcba303c42b 43 printf("ID 0x100 = ");
NicolasG 0:abcba303c42b 44 for(index=7;index>=0; index--)
NicolasG 0:abcba303c42b 45 {
NicolasG 0:abcba303c42b 46 tabVal[1][index]=msgR.data[index];
NicolasG 0:abcba303c42b 47 printf("%d",msgR.data[index]);
NicolasG 0:abcba303c42b 48 }
NicolasG 0:abcba303c42b 49 printf("\n");
NicolasG 0:abcba303c42b 50 break;
NicolasG 0:abcba303c42b 51
NicolasG 0:abcba303c42b 52 case 0x200 :
NicolasG 0:abcba303c42b 53 led2 = msgR.data[0];
NicolasG 0:abcba303c42b 54 //printf("Message received: id= 0x%x _ data= %d _ len = %d type= %d _ format= %d \n",msgR.id,msgR.data[0],msgR.len,msgR.type,msgR.format);
NicolasG 0:abcba303c42b 55 printf("ID 0x200 = ");
NicolasG 0:abcba303c42b 56 for(index=7;index>=0; index--)
NicolasG 0:abcba303c42b 57 {
NicolasG 0:abcba303c42b 58 tabVal[2][index]=msgR.data[index];
NicolasG 0:abcba303c42b 59 printf("%d",msgR.data[index]);
NicolasG 0:abcba303c42b 60 }
NicolasG 0:abcba303c42b 61 printf("\n");
NicolasG 0:abcba303c42b 62 break;
NicolasG 0:abcba303c42b 63 }
NicolasG 0:abcba303c42b 64 }
NicolasG 0:abcba303c42b 65
NicolasG 0:abcba303c42b 66
NicolasG 0:abcba303c42b 67
NicolasG 0:abcba303c42b 68 int main() {
NicolasG 0:abcba303c42b 69 can.frequency(125000);
NicolasG 0:abcba303c42b 70 printf("main()\n");
NicolasG 0:abcba303c42b 71 ticker1.attach(&send, 0.2);
NicolasG 0:abcba303c42b 72 ticker2.attach(&reader, 0.1);
NicolasG 0:abcba303c42b 73 wait(0.2);
NicolasG 0:abcba303c42b 74 }
NicolasG 0:abcba303c42b 75