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.
main.cpp
00001 00002 #include "mbed.h" 00003 #include "C12832.h" 00004 #include "CanreceiveLib.h" 00005 00006 Ticker ticker; 00007 DigitalOut led1(LED1); 00008 DigitalOut led2(LED2); 00009 CAN can1(p9, p10); 00010 CAN can2(p30, p29); 00011 char message[8]; 00012 int countvitesse = 1; 00013 float gvitesse = 0; 00014 char dpvitesse; 00015 float gregmoteur = 0; 00016 char dpregmoteur; 00017 #define canfrequency 500000 00018 #define idvitesse 0x38D 00019 #define lnvitesse 5 00020 #define idregime 0x208 00021 #define lnregime 8 00022 00023 // Vitesse 38D : 5 octets / période 40 ms (octet1*256+octet2)*0.01 00024 // Regime moteur 208 : 8 octets / période 10 ms (octet1*256+octet2)*0.125 00025 00026 AnalogIn vit(p20); 00027 AnalogIn regm(p19); 00028 C12832 lcd(p5, p7, p6, p8, p11); 00029 00030 void send() 00031 { 00032 unsigned int regime_moteur = (unsigned)(regm.read() * 65535.0); 00033 message[0] = regime_moteur >> 8; 00034 message[1] = regime_moteur - message[0] <<8; 00035 can1.write(CANMessage(idregime, message, lnregime)); 00036 if (!(--countvitesse)) { 00037 countvitesse = 4; 00038 unsigned int vitesse = (unsigned)(vit.read() * 25000.0); 00039 message[0] = vitesse >> 8; 00040 message[1] = vitesse - message[1] <<8; 00041 wait_us(100); 00042 can1.write(CANMessage(idvitesse, message, lnvitesse)); 00043 } 00044 } 00045 void can2reader(void) 00046 { 00047 CANMessage msg; 00048 float calcul; 00049 if(can2.read(msg)) { 00050 calcul = msg.data[0] << 8 + msg.data[1]; 00051 if (msg.id == idvitesse) { 00052 gvitesse = calcul * 0.01; 00053 dpvitesse = true; 00054 } else if (msg.id == idregime) { 00055 gregmoteur = calcul * 0.125; 00056 dpregmoteur = true; 00057 } 00058 } 00059 } 00060 00061 int main() 00062 { 00063 can1.frequency(canfrequency); 00064 can2.frequency(canfrequency); 00065 lcd.cls(); 00066 lcd.locate(0,0); 00067 lcd.printf("Hello simulation BUS can Vers 2"); 00068 ticker.attach(&send, 0.01); 00069 can2.attach(&can2reader); 00070 while(1) { 00071 if (dpvitesse) { 00072 lcd.locate(2,11); 00073 lcd.printf("Vitesse %3.0fkm/h\r\n",gvitesse); 00074 dpvitesse = false; 00075 } else if (dpregmoteur) { 00076 lcd.locate(2,22); 00077 lcd.printf("Reg mot %4.0ftr/min\r\n",gregmoteur); 00078 dpregmoteur = false; 00079 } 00080 } 00081 }
Generated on Sun Jul 24 2022 16:21:31 by
1.7.2