can amk

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 };