HAVRM mine
/
mbed_CAN_test
can_test for my case
main.cpp@0:24cfc59b5220, 2016-04-04 (annotated)
- Committer:
- hirokimineshita
- Date:
- Mon Apr 04 04:16:56 2016 +0000
- Revision:
- 0:24cfc59b5220
can_test;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hirokimineshita | 0:24cfc59b5220 | 1 | #include "mbed.h" |
hirokimineshita | 0:24cfc59b5220 | 2 | |
hirokimineshita | 0:24cfc59b5220 | 3 | Ticker ticker; |
hirokimineshita | 0:24cfc59b5220 | 4 | DigitalOut led1(LED1); |
hirokimineshita | 0:24cfc59b5220 | 5 | DigitalOut led2(LED2); |
hirokimineshita | 0:24cfc59b5220 | 6 | //BusOut led(LED1,LED2,LED3,LED4); |
hirokimineshita | 0:24cfc59b5220 | 7 | CAN can2(p9, p10); |
hirokimineshita | 0:24cfc59b5220 | 8 | CAN can1(p30, p29); |
hirokimineshita | 0:24cfc59b5220 | 9 | char counter[8] = {0,0,0,0,0,0,0,0}; |
hirokimineshita | 0:24cfc59b5220 | 10 | int sub=0,j=1,count=0; |
hirokimineshita | 0:24cfc59b5220 | 11 | |
hirokimineshita | 0:24cfc59b5220 | 12 | void send() { |
hirokimineshita | 0:24cfc59b5220 | 13 | //printf("send()\n\r"); |
hirokimineshita | 0:24cfc59b5220 | 14 | //led=counter[0]; |
hirokimineshita | 0:24cfc59b5220 | 15 | if(j>40)j=1; |
hirokimineshita | 0:24cfc59b5220 | 16 | if(can2.write(CANMessage(j, counter, 8))) { |
hirokimineshita | 0:24cfc59b5220 | 17 | //printf("wloop()\n\r"); |
hirokimineshita | 0:24cfc59b5220 | 18 | //printf("Message sent :%3d: %3d,%3d,%3d,%3d,%3d,%3d,%3d,%3d\n\r",j, counter[0],counter[1],counter[2],counter[3],counter[4],counter[5],counter[6],counter[7]); |
hirokimineshita | 0:24cfc59b5220 | 19 | sub++; |
hirokimineshita | 0:24cfc59b5220 | 20 | if(count==2){ |
hirokimineshita | 0:24cfc59b5220 | 21 | j++; |
hirokimineshita | 0:24cfc59b5220 | 22 | count=0; |
hirokimineshita | 0:24cfc59b5220 | 23 | } |
hirokimineshita | 0:24cfc59b5220 | 24 | count++; |
hirokimineshita | 0:24cfc59b5220 | 25 | for(int i=0;i<8;i++)counter[i]=(sub>>(i*8))&255; |
hirokimineshita | 0:24cfc59b5220 | 26 | counter[7]=(4*3-j)/(4*3-j); |
hirokimineshita | 0:24cfc59b5220 | 27 | } |
hirokimineshita | 0:24cfc59b5220 | 28 | led1 = !led1; |
hirokimineshita | 0:24cfc59b5220 | 29 | } |
hirokimineshita | 0:24cfc59b5220 | 30 | |
hirokimineshita | 0:24cfc59b5220 | 31 | int main() { |
hirokimineshita | 0:24cfc59b5220 | 32 | //led=0; |
hirokimineshita | 0:24cfc59b5220 | 33 | can2.frequency(1000000); |
hirokimineshita | 0:24cfc59b5220 | 34 | printf("main()\n\r"); |
hirokimineshita | 0:24cfc59b5220 | 35 | //ticker.attach(&send, 0.1); |
hirokimineshita | 0:24cfc59b5220 | 36 | CANMessage msg; |
hirokimineshita | 0:24cfc59b5220 | 37 | while(1) { |
hirokimineshita | 0:24cfc59b5220 | 38 | //printf("loop()\n\r"); |
hirokimineshita | 0:24cfc59b5220 | 39 | if(can2.read(msg)){ |
hirokimineshita | 0:24cfc59b5220 | 40 | printf("%3d:%3d,%3d,%3d,%3d,%3d,%3d,%3d,%3d\n\r",msg.id,msg.data[0],msg.data[1],msg.data[2],msg.data[3],msg.data[4],msg.data[5],msg.data[6],msg.data[7]); |
hirokimineshita | 0:24cfc59b5220 | 41 | if(msg.id==4)led2 = !led2; |
hirokimineshita | 0:24cfc59b5220 | 42 | } |
hirokimineshita | 0:24cfc59b5220 | 43 | //led=msg.data[0]; |
hirokimineshita | 0:24cfc59b5220 | 44 | |
hirokimineshita | 0:24cfc59b5220 | 45 | //wait(0.2); |
hirokimineshita | 0:24cfc59b5220 | 46 | |
hirokimineshita | 0:24cfc59b5220 | 47 | } |
hirokimineshita | 0:24cfc59b5220 | 48 | } |