Nemanja Neskovic
/
canrxamk
can amk
main.cpp@2:306861df19f5, 2019-04-11 (annotated)
- Committer:
- nemanja1994
- Date:
- Thu Apr 11 08:23:20 2019 +0000
- Revision:
- 2:306861df19f5
- Parent:
- 1:41d392ac86e9
can amk
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Tafkal | 0:c9b767ca1c98 | 1 | #include "mbed.h" |
Tafkal | 0:c9b767ca1c98 | 2 | |
nemanja1994 | 2:306861df19f5 | 3 | CAN can(PA_11, PA_12, 500000); |
Tafkal | 1:41d392ac86e9 | 4 | Serial pc(PC_10,PC_11,19200); |
Tafkal | 1:41d392ac86e9 | 5 | CANMessage msg; |
nemanja1994 | 2:306861df19f5 | 6 | int flag; |
Tafkal | 0:c9b767ca1c98 | 7 | |
nemanja1994 | 2:306861df19f5 | 8 | int counter=1; |
nemanja1994 | 2:306861df19f5 | 9 | char sen[8]={0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00}; |
nemanja1994 | 2:306861df19f5 | 10 | char reset[8]={0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00}; |
nemanja1994 | 2:306861df19f5 | 11 | char niz[8]={0x00,0x07,0x1e,0x00,0xE8,0x03,0x00,0x00}; |
nemanja1994 | 2:306861df19f5 | 12 | |
nemanja1994 | 2:306861df19f5 | 13 | CANMessage can283; |
nemanja1994 | 2:306861df19f5 | 14 | CANMessage can285; |
nemanja1994 | 2:306861df19f5 | 15 | |
nemanja1994 | 2:306861df19f5 | 16 | Ticker ticker; |
nemanja1994 | 2:306861df19f5 | 17 | |
nemanja1994 | 2:306861df19f5 | 18 | Ticker ticker2; |
nemanja1994 | 2:306861df19f5 | 19 | |
nemanja1994 | 2:306861df19f5 | 20 | Ticker ticker3; |
nemanja1994 | 2:306861df19f5 | 21 | |
nemanja1994 | 2:306861df19f5 | 22 | void CANMsgReceive(){ // CAN RX Interrupt Function |
nemanja1994 | 2:306861df19f5 | 23 | CANMessage tmpMsg; |
nemanja1994 | 2:306861df19f5 | 24 | if (can.read(tmpMsg)) { //Detect message |
nemanja1994 | 2:306861df19f5 | 25 | //pc.printf("%x\n",tmpMsg.id); |
nemanja1994 | 2:306861df19f5 | 26 | if(tmpMsg.id==0x283) { |
nemanja1994 | 2:306861df19f5 | 27 | can283=tmpMsg; |
nemanja1994 | 2:306861df19f5 | 28 | //pc.printf("id: %x %x %x \n",tmpMsg.id,tmpMsg.data[0],tmpMsg.data[1]); |
nemanja1994 | 2:306861df19f5 | 29 | } |
nemanja1994 | 2:306861df19f5 | 30 | else if (tmpMsg.id==0x285) can285=tmpMsg; |
nemanja1994 | 2:306861df19f5 | 31 | //pc.printf("%x %x \n",can283.data[0],can283.data[1]); |
nemanja1994 | 2:306861df19f5 | 32 | } |
nemanja1994 | 2:306861df19f5 | 33 | }; |
nemanja1994 | 2:306861df19f5 | 34 | |
nemanja1994 | 2:306861df19f5 | 35 | void send_reset() { |
nemanja1994 | 2:306861df19f5 | 36 | //printf("send()\n"); |
nemanja1994 | 2:306861df19f5 | 37 | if(can.write(CANMessage(0x184, reset, 8))) { |
nemanja1994 | 2:306861df19f5 | 38 | //pc.printf("wloop()\n"); |
nemanja1994 | 2:306861df19f5 | 39 | //counter++; |
nemanja1994 | 2:306861df19f5 | 40 | pc.printf("Message sent: %d\n", 1); |
nemanja1994 | 2:306861df19f5 | 41 | } |
nemanja1994 | 2:306861df19f5 | 42 | } |
nemanja1994 | 2:306861df19f5 | 43 | void send_en() { |
nemanja1994 | 2:306861df19f5 | 44 | //printf("send()\n"); |
nemanja1994 | 2:306861df19f5 | 45 | if(can.write(CANMessage(0x184, sen, 8))) { |
nemanja1994 | 2:306861df19f5 | 46 | //pc.printf("wloop()\n"); |
nemanja1994 | 2:306861df19f5 | 47 | //counter++; |
nemanja1994 | 2:306861df19f5 | 48 | pc.printf("Message sent: %d\n", 2); |
nemanja1994 | 2:306861df19f5 | 49 | } |
nemanja1994 | 2:306861df19f5 | 50 | } |
nemanja1994 | 2:306861df19f5 | 51 | void send_setpoint() { |
nemanja1994 | 2:306861df19f5 | 52 | //printf("send()\n"); |
nemanja1994 | 2:306861df19f5 | 53 | if(can.write(CANMessage(0x184, niz, 8))) { |
nemanja1994 | 2:306861df19f5 | 54 | //pc.printf("wloop()\n"); |
nemanja1994 | 2:306861df19f5 | 55 | //counter++; |
nemanja1994 | 2:306861df19f5 | 56 | pc.printf("Message sent: %d\n", 3); |
nemanja1994 | 2:306861df19f5 | 57 | } |
nemanja1994 | 2:306861df19f5 | 58 | } |
nemanja1994 | 2:306861df19f5 | 59 | |
Tafkal | 0:c9b767ca1c98 | 60 | int main() { |
nemanja1994 | 2:306861df19f5 | 61 | can.attach(&CANMsgReceive,CAN::RxIrq); |
nemanja1994 | 2:306861df19f5 | 62 | |
nemanja1994 | 2:306861df19f5 | 63 | //ticker.attach_us(send_reset,5000); |
nemanja1994 | 2:306861df19f5 | 64 | while(1){ |
nemanja1994 | 2:306861df19f5 | 65 | can.write(CANMessage(0x184,reset,8)); |
nemanja1994 | 2:306861df19f5 | 66 | wait_ms(10); |
nemanja1994 | 2:306861df19f5 | 67 | pc.printf("cao\n"); |
nemanja1994 | 2:306861df19f5 | 68 | pc.printf("id:%x %x %x \n",can283.id,can283.data[0],can283.data[1]); |
nemanja1994 | 2:306861df19f5 | 69 | if((can283.data[1])==1){ |
nemanja1994 | 2:306861df19f5 | 70 | //pc.printf("%x %x \n",can283.data[0],can283.data[1]); |
nemanja1994 | 2:306861df19f5 | 71 | //ticker.detach(); |
nemanja1994 | 2:306861df19f5 | 72 | //ticker.attach_us(send_en,5000); |
nemanja1994 | 2:306861df19f5 | 73 | break; |
nemanja1994 | 2:306861df19f5 | 74 | } |
nemanja1994 | 2:306861df19f5 | 75 | } |
nemanja1994 | 2:306861df19f5 | 76 | while(1){ |
nemanja1994 | 2:306861df19f5 | 77 | can.write(CANMessage(0x184,sen,8)); |
nemanja1994 | 2:306861df19f5 | 78 | wait_ms(10); |
nemanja1994 | 2:306861df19f5 | 79 | pc.printf("ej\n"); |
nemanja1994 | 2:306861df19f5 | 80 | pc.printf("id:%x %x %x \n",can283.id,can283.data[0],can283.data[1]); |
nemanja1994 | 2:306861df19f5 | 81 | if((can283.data[1])==0x79){ |
nemanja1994 | 2:306861df19f5 | 82 | //ticker.detach(); |
nemanja1994 | 2:306861df19f5 | 83 | //ticker.attach_us(send_setpoint,5000); |
nemanja1994 | 2:306861df19f5 | 84 | break; |
nemanja1994 | 2:306861df19f5 | 85 | } |
nemanja1994 | 2:306861df19f5 | 86 | } |
nemanja1994 | 2:306861df19f5 | 87 | |
nemanja1994 | 2:306861df19f5 | 88 | |
Tafkal | 0:c9b767ca1c98 | 89 | while(1) { |
nemanja1994 | 2:306861df19f5 | 90 | can.write(CANMessage(0x184,niz,8)); |
nemanja1994 | 2:306861df19f5 | 91 | wait_ms(10); |
nemanja1994 | 2:306861df19f5 | 92 | pc.printf("ooj\n"); |
nemanja1994 | 2:306861df19f5 | 93 | pc.printf("id:%x %x %x \n",can283.id,can283.data[2],can283.data[3]); |
nemanja1994 | 2:306861df19f5 | 94 | pc.printf("id:%x %x %x \n",can283.id,can283.data[4],can283.data[5]); |
nemanja1994 | 2:306861df19f5 | 95 | pc.printf("id:%x %x %x \n",can283.id,can283.data[6],can283.data[7]); |
Tafkal | 1:41d392ac86e9 | 96 | }; |
Tafkal | 1:41d392ac86e9 | 97 | }; |