Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:abcba303c42b, 2015-02-11 (annotated)
- Committer:
- NicolasG
- Date:
- Wed Feb 11 14:47:33 2015 +0000
- Revision:
- 0:abcba303c42b
test
Who changed what in which revision?
| User | Revision | Line number | New 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 |