Saša Radosavljevic / Mbed 2 deprecated Lecture_os_2

Dependencies:   mbed

Committer:
higepi
Date:
Fri May 15 08:35:28 2020 +0000
Revision:
11:b7b298073e6f
Parent:
10:72a688ace26d
Child:
12:449badf29d08
Plein de fonctions;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 0:d5bd863b2036 1 #include "mbed.h"
bcostm 0:d5bd863b2036 2
higepi 3:ac6eead48a9d 3 //AX12 myax12 (PC_4, PC_5, 1,115200);
higepi 3:ac6eead48a9d 4 Serial myserial_ax12(PC_4,PC_5,115200);
higepi 4:4160376d7d69 5 Serial pc(USBTX,USBRX,115200);
higepi 6:a243c013e519 6 //Serial zigBee(PC_1,PC_0,115200);
higepi 4:4160376d7d69 7
higepi 4:4160376d7d69 8
higepi 4:4160376d7d69 9 DigitalOut my_led1(LED1);
higepi 4:4160376d7d69 10 DigitalOut my_led2(LED2);
higepi 4:4160376d7d69 11 DigitalOut my_led3(LED3);
bcostm 0:d5bd863b2036 12
higepi 11:b7b298073e6f 13 void SetCRSpeed(int ID, float speed);
higepi 11:b7b298073e6f 14 void SetMode(int mode);
higepi 11:b7b298073e6f 15 void SetCWLimit (int ID, int degrees);
higepi 11:b7b298073e6f 16 void SetCCWLimit (int ID, int degrees);
higepi 11:b7b298073e6f 17 void Write(int ID, int start, int bytes, char* data);
higepi 9:11b36174b15e 18
higepi 6:a243c013e519 19 char tata[10] = {};
higepi 4:4160376d7d69 20 int position_1;
higepi 4:4160376d7d69 21 int position_2;
higepi 4:4160376d7d69 22 int position_3;
higepi 6:a243c013e519 23 int num_moteur = 1;
higepi 4:4160376d7d69 24 int vitesse;
higepi 4:4160376d7d69 25 char sens;
higepi 4:4160376d7d69 26
higepi 4:4160376d7d69 27 Ticker ticker_10ms;
higepi 4:4160376d7d69 28
higepi 4:4160376d7d69 29 //Définition des trames de requête pour le moteur 1
higepi 4:4160376d7d69 30 char trame_demande_pos_1[8]={0xFF,0xFF,0x01,0x4,0x2,0x24,2,0xD2};
higepi 4:4160376d7d69 31 char trame_demande_pos_2[8]={0xFF,0xFF,0x02,0x4,0x2,0x24,2,0xD1};
higepi 4:4160376d7d69 32 char trame_demande_pos_3[8]={0xFF,0xFF,0x03,0x4,0x2,0x24,2,0xD0};
higepi 4:4160376d7d69 33 char trame_demande_vitesse[8]={0xFF,0xFF,0x01,0x4,0x2,0x28,2,0xCE};
higepi 4:4160376d7d69 34
higepi 4:4160376d7d69 35
higepi 4:4160376d7d69 36 #define acq_vitesse 0
higepi 4:4160376d7d69 37 #define acq_position 1
higepi 4:4160376d7d69 38
higepi 4:4160376d7d69 39 //Fonction d'interruption sur réception de charactère sur liaison série
higepi 3:ac6eead48a9d 40 void Rx_Irq_fonction(void)
bcostm 0:d5bd863b2036 41 {
higepi 4:4160376d7d69 42 my_led1 = !my_led1;
higepi 4:4160376d7d69 43
higepi 4:4160376d7d69 44 static int i_rx=0;
higepi 3:ac6eead48a9d 45 tata[i_rx]=myserial_ax12.getc();
higepi 4:4160376d7d69 46
higepi 4:4160376d7d69 47 if (tata[0]!=0xFF) // On vérifie que le premier et le deuxième octet sont biens 0xFF
higepi 3:ac6eead48a9d 48 i_rx=0;
higepi 3:ac6eead48a9d 49 else i_rx++;
higepi 4:4160376d7d69 50 if((i_rx==2)&&(tata[1] != 0xFF)) i_rx=0;
higepi 4:4160376d7d69 51
higepi 4:4160376d7d69 52 //Une fois qu'on sait que la trame est "juste" on récupère le reste
higepi 3:ac6eead48a9d 53 if ((tata[0]==0xFF) && (tata[1]==0xFF) && (tata[2]==0x01) && i_rx==7)
higepi 3:ac6eead48a9d 54 {
higepi 4:4160376d7d69 55 my_led3 = !my_led3;
higepi 3:ac6eead48a9d 56 i_rx=0;
higepi 4:4160376d7d69 57
higepi 6:a243c013e519 58 if(tata[4] == 0){ //si erreur est nulle
higepi 4:4160376d7d69 59 //On transforme les données en fonction de ce qu'on lit depuis les moteurs
higepi 4:4160376d7d69 60 if (acq_position == 1) position_1 = tata[5]+((uint16_t)tata[6]<<8);
higepi 4:4160376d7d69 61 /*if (acq_vitesse == 1){
higepi 4:4160376d7d69 62 sens = ((tata[5]+((uint16_t)tata[6]<<8))&0x40)>>10;
higepi 4:4160376d7d69 63 vitesse = tata[5]+((uint16_t)tata[6]<<8);
higepi 4:4160376d7d69 64 }*/
higepi 4:4160376d7d69 65 }
higepi 3:ac6eead48a9d 66 tata[0]=0;
higepi 3:ac6eead48a9d 67 }
higepi 4:4160376d7d69 68
higepi 4:4160376d7d69 69 if ((tata[0]==0xFF) && (tata[1]==0xFF) && (tata[2]==0x02) && i_rx==7)
higepi 4:4160376d7d69 70 {
higepi 4:4160376d7d69 71 my_led3 = !my_led3;
higepi 4:4160376d7d69 72 i_rx=0;
higepi 4:4160376d7d69 73
higepi 6:a243c013e519 74 if(tata[4]==00){ //si erreur nulle
higepi 4:4160376d7d69 75 //On transforme les données en fonction de ce qu'on lit depuis les moteurs
higepi 4:4160376d7d69 76 if (acq_position == 1) position_2 = tata[5]+((uint16_t)tata[6]<<8);
higepi 4:4160376d7d69 77 /*if (acq_vitesse == 1){
higepi 4:4160376d7d69 78 sens = ((tata[5]+((uint16_t)tata[6]<<8))&0x40)>>10;
higepi 4:4160376d7d69 79 vitesse = tata[5]+((uint16_t)tata[6]<<8);
higepi 4:4160376d7d69 80 }*/
higepi 4:4160376d7d69 81 }
higepi 4:4160376d7d69 82 tata[0]=0;
higepi 4:4160376d7d69 83 }
higepi 4:4160376d7d69 84
higepi 4:4160376d7d69 85 if ((tata[0]==0xFF) && (tata[1]==0xFF) && (tata[2]==0x03) && i_rx==7)
higepi 3:ac6eead48a9d 86 {
higepi 4:4160376d7d69 87 my_led3 = !my_led3;
higepi 4:4160376d7d69 88 i_rx=0;
higepi 4:4160376d7d69 89
higepi 6:a243c013e519 90 if(tata[4]==00){ //si erreur nulle
higepi 4:4160376d7d69 91 //On transforme les données en fonction de ce qu'on lit depuis les moteurs
higepi 4:4160376d7d69 92 if (acq_position == 1) position_3 = tata[5]+((uint16_t)tata[6]<<8);
higepi 4:4160376d7d69 93 /*if (acq_vitesse == 1){
higepi 4:4160376d7d69 94 sens = ((tata[5]+((uint16_t)tata[6]<<8))&0x40)>>10;
higepi 4:4160376d7d69 95 vitesse = tata[5]+((uint16_t)tata[6]<<8);
higepi 4:4160376d7d69 96 }*/
higepi 4:4160376d7d69 97 }
higepi 4:4160376d7d69 98 tata[0]=0;
higepi 4:4160376d7d69 99 }
higepi 4:4160376d7d69 100
higepi 6:a243c013e519 101 if (i_rx>9)
higepi 4:4160376d7d69 102 {
higepi 4:4160376d7d69 103 /*for(int i=0;i<10;i++)
higepi 4:4160376d7d69 104 tata[i]=0;*/
higepi 3:ac6eead48a9d 105 i_rx=0;
higepi 3:ac6eead48a9d 106 }
higepi 3:ac6eead48a9d 107 }
higepi 3:ac6eead48a9d 108
higepi 3:ac6eead48a9d 109 void fonction_10ms(void)
higepi 3:ac6eead48a9d 110 {
higepi 5:d65b158dd93d 111 /*for(int i=0;i<=19;i++)
higepi 4:4160376d7d69 112 {
higepi 4:4160376d7d69 113 pc.printf("%X ",tata[i]);
higepi 4:4160376d7d69 114 }
higepi 5:d65b158dd93d 115 pc.printf("\n\r");*/
higepi 5:d65b158dd93d 116
higepi 4:4160376d7d69 117 for(int i=0;i<=7;i++)
higepi 3:ac6eead48a9d 118 {
higepi 4:4160376d7d69 119 //On envoi la trame que l'on souhaite
higepi 6:a243c013e519 120 if(num_moteur == 1)myserial_ax12.putc(trame_demande_pos_1[i]);
higepi 6:a243c013e519 121 if(num_moteur == 2)myserial_ax12.putc(trame_demande_pos_2[i]);
higepi 6:a243c013e519 122 if(num_moteur == 3)myserial_ax12.putc(trame_demande_pos_3[i]);
higepi 5:d65b158dd93d 123 /*if(acq_vitesse){
higepi 4:4160376d7d69 124 myserial_ax12.putc(trame_demande_vitesse[i]);
higepi 4:4160376d7d69 125 //pc.printf("\n\rvitesse = %d\n\rsens = %d",vitesse,sens);
higepi 5:d65b158dd93d 126 }*/
bcostm 0:d5bd863b2036 127 }
higepi 5:d65b158dd93d 128 num_moteur++;
higepi 8:18392048e2cc 129 if(num_moteur > 3)num_moteur = 1;
bcostm 0:d5bd863b2036 130 }
higepi 3:ac6eead48a9d 131
higepi 3:ac6eead48a9d 132 int main(){
higepi 3:ac6eead48a9d 133 //myax12.SetMode(1); //passage en Continuous rotation
higepi 4:4160376d7d69 134
higepi 9:11b36174b15e 135 //char trame_cmd_speed_1[9]={0xFF,0xFF,0x01,0x5,0x3,0x20,0x10,0x0,0xC6};
higepi 9:11b36174b15e 136 //char trame_cmd_speed_2[9]={0xFF,0xFF,0x02,0x5,0x3,0x20,0x10,0x0,0xC5};
higepi 9:11b36174b15e 137 //char trame_cmd_speed_3[9]={0xFF,0xFF,0x03,0x5,0x3,0x20,0x10,0x0,0xC4};
higepi 3:ac6eead48a9d 138 float Angle;
higepi 3:ac6eead48a9d 139 short speed;
higepi 3:ac6eead48a9d 140 char data[10];
higepi 3:ac6eead48a9d 141 char s=0;
higepi 3:ac6eead48a9d 142 float temp;
higepi 5:d65b158dd93d 143 int position_old_1=0,i,a;
higepi 5:d65b158dd93d 144 int position_old_2=0;
higepi 5:d65b158dd93d 145 int position_old_3=0;
higepi 3:ac6eead48a9d 146
higepi 4:4160376d7d69 147 pc.printf("test lecture AX12\n\r");
higepi 4:4160376d7d69 148
higepi 11:b7b298073e6f 149 SetCRSpeed(1,0.2);
higepi 11:b7b298073e6f 150 SetCRSpeed(2,0.2);
higepi 11:b7b298073e6f 151 SetCRSpeed(3,0.2);
higepi 3:ac6eead48a9d 152
higepi 3:ac6eead48a9d 153 myserial_ax12.attach(&Rx_Irq_fonction, Serial::RxIrq);
higepi 4:4160376d7d69 154 ticker_10ms.attach(&fonction_10ms,1);
higepi 3:ac6eead48a9d 155
higepi 3:ac6eead48a9d 156 while(1) {
higepi 4:4160376d7d69 157
higepi 5:d65b158dd93d 158
higepi 7:f793a00a6e37 159 if (position_1 != position_old_1)
higepi 7:f793a00a6e37 160 {
higepi 7:f793a00a6e37 161 pc.printf("\n\rposition moteur 1 = %d :", position_1);
higepi 7:f793a00a6e37 162 //pc.printf("\n\rposition moteur 1 = %d\n\r mot recu :",position_1);
higepi 7:f793a00a6e37 163
higepi 7:f793a00a6e37 164 /*for(i=0;i<=7;i++)
higepi 7:f793a00a6e37 165 {
higepi 7:f793a00a6e37 166 pc.printf("%X ",tata[i]);
higepi 7:f793a00a6e37 167 }*/
higepi 7:f793a00a6e37 168 position_old_1 = position_1;
higepi 3:ac6eead48a9d 169 }
higepi 7:f793a00a6e37 170 if (position_2 != position_old_2)
higepi 7:f793a00a6e37 171 {
higepi 7:f793a00a6e37 172 pc.printf("\n\rposition moteur 2 = %d :", position_2);
higepi 7:f793a00a6e37 173
higepi 7:f793a00a6e37 174 position_old_2 = position_2;
higepi 7:f793a00a6e37 175 }
higepi 7:f793a00a6e37 176 if (position_3 != position_old_3)
higepi 7:f793a00a6e37 177 {
higepi 7:f793a00a6e37 178 pc.printf("\n\rposition moteur 3 = %d :", position_3);
higepi 7:f793a00a6e37 179
higepi 7:f793a00a6e37 180 position_old_3 = position_3;
higepi 7:f793a00a6e37 181 }
higepi 7:f793a00a6e37 182
higepi 4:4160376d7d69 183
higepi 4:4160376d7d69 184 }
higepi 3:ac6eead48a9d 185
higepi 3:ac6eead48a9d 186 }
higepi 3:ac6eead48a9d 187
higepi 11:b7b298073e6f 188 void SetCRSpeed(int ID, float speed) {
higepi 11:b7b298073e6f 189
higepi 11:b7b298073e6f 190 // bit 10 = direction, 0 = CCW, 1=CW
higepi 11:b7b298073e6f 191 // bits 9-0 = Speed
higepi 9:11b36174b15e 192 char data[2];
higepi 9:11b36174b15e 193
higepi 9:11b36174b15e 194 int goal = (0x3ff * abs(speed));
higepi 9:11b36174b15e 195
higepi 9:11b36174b15e 196 // Set direction CW if we have a negative speed
higepi 9:11b36174b15e 197 if (speed < 0) {
higepi 9:11b36174b15e 198 goal |= (0x1 << 10);
higepi 9:11b36174b15e 199 }
higepi 11:b7b298073e6f 200
higepi 11:b7b298073e6f 201 data[0] = goal & 0xff; // bottom 8 bits
higepi 11:b7b298073e6f 202 data[1] = goal >> 8; // top 8 bits
higepi 11:b7b298073e6f 203
higepi 11:b7b298073e6f 204 // write the packet, return the error code
higepi 11:b7b298073e6f 205 Write(ID, 0x20, 2, data);
higepi 11:b7b298073e6f 206 }
higepi 11:b7b298073e6f 207
higepi 11:b7b298073e6f 208 void SetMode(int ID, int mode) {
higepi 11:b7b298073e6f 209
higepi 11:b7b298073e6f 210 if (mode == 1) { // set CR
higepi 11:b7b298073e6f 211 SetCWLimit(ID,0);
higepi 11:b7b298073e6f 212 SetCCWLimit(ID,0);
higepi 11:b7b298073e6f 213 SetCRSpeed(ID,0.0);
higepi 11:b7b298073e6f 214 } else {
higepi 11:b7b298073e6f 215 SetCWLimit(ID,0);
higepi 11:b7b298073e6f 216 SetCCWLimit(ID,360);
higepi 11:b7b298073e6f 217 SetCRSpeed(ID,0.0);
higepi 11:b7b298073e6f 218 }
higepi 11:b7b298073e6f 219 }
higepi 11:b7b298073e6f 220
higepi 11:b7b298073e6f 221 void SetCWLimit (int ID, int degrees) {
higepi 11:b7b298073e6f 222
higepi 11:b7b298073e6f 223 char data[2];
higepi 11:b7b298073e6f 224 short limit = (4095 * degrees) / 360;
higepi 11:b7b298073e6f 225
higepi 11:b7b298073e6f 226 data[0] = limit & 0xff; // bottom 8 bits
higepi 11:b7b298073e6f 227 data[1] = limit >> 8; // top 8 bits
higepi 11:b7b298073e6f 228
higepi 11:b7b298073e6f 229 Write(ID, 0x06, 2, data);
higepi 11:b7b298073e6f 230 }
higepi 11:b7b298073e6f 231
higepi 11:b7b298073e6f 232 void SetCCWLimit (int ID, int degrees) {
higepi 9:11b36174b15e 233
higepi 11:b7b298073e6f 234 char data[2];
higepi 11:b7b298073e6f 235 short limit = (4095 * degrees) / 360;
higepi 11:b7b298073e6f 236
higepi 11:b7b298073e6f 237 data[0] = limit & 0xff; // bottom 8 bits
higepi 11:b7b298073e6f 238 data[1] = limit >> 8; // top 8 bits
higepi 11:b7b298073e6f 239
higepi 11:b7b298073e6f 240 Write(ID, 0x08, 2, data);
higepi 11:b7b298073e6f 241 }
higepi 11:b7b298073e6f 242
higepi 11:b7b298073e6f 243 void Write(int ID, int start, int bytes, char* data){
higepi 11:b7b298073e6f 244 char TxBuf[16];
higepi 11:b7b298073e6f 245 char sum = 0;
higepi 11:b7b298073e6f 246
higepi 11:b7b298073e6f 247 TxBuf[0] = 0xff;
higepi 11:b7b298073e6f 248 TxBuf[1] = 0xff;
higepi 11:b7b298073e6f 249
higepi 11:b7b298073e6f 250 // ID
higepi 9:11b36174b15e 251 TxBuf[2] = ID;
higepi 9:11b36174b15e 252 sum += TxBuf[2];
higepi 11:b7b298073e6f 253
higepi 11:b7b298073e6f 254
higepi 11:b7b298073e6f 255 // packet Length
higepi 11:b7b298073e6f 256 TxBuf[3] = 3+bytes;
higepi 9:11b36174b15e 257 sum += TxBuf[3];
higepi 9:11b36174b15e 258
higepi 11:b7b298073e6f 259 // Instruction
higepi 11:b7b298073e6f 260 TxBuf[4]=0x03;
higepi 9:11b36174b15e 261 sum += TxBuf[4];
higepi 11:b7b298073e6f 262
higepi 11:b7b298073e6f 263 // Start Address
higepi 11:b7b298073e6f 264 TxBuf[5] = start;
higepi 9:11b36174b15e 265 sum += TxBuf[5];
higepi 11:b7b298073e6f 266
higepi 11:b7b298073e6f 267 // data
higepi 11:b7b298073e6f 268 for (char i=0; i<bytes ; i++) {
higepi 11:b7b298073e6f 269 TxBuf[6+i] = data[i];
higepi 11:b7b298073e6f 270 sum += TxBuf[6+i];
higepi 11:b7b298073e6f 271
higepi 11:b7b298073e6f 272 }
higepi 11:b7b298073e6f 273
higepi 11:b7b298073e6f 274 // checksum
higepi 11:b7b298073e6f 275 TxBuf[6+bytes] = 0xFF - sum;
higepi 11:b7b298073e6f 276
higepi 11:b7b298073e6f 277 // Transmit the packet in one burst with no pausing
higepi 11:b7b298073e6f 278 for (int i = 0; i < (7 + bytes) ; i++) {
higepi 9:11b36174b15e 279 myserial_ax12.putc(TxBuf[i]);
higepi 9:11b36174b15e 280 }
higepi 11:b7b298073e6f 281
higepi 11:b7b298073e6f 282 wait(0.00002);
higepi 11:b7b298073e6f 283
higepi 9:11b36174b15e 284 }
higepi 9:11b36174b15e 285
higepi 4:4160376d7d69 286 //void set_speed(ID,speed)
higepi 4:4160376d7d69 287 //void demande_lecture_pos(ID)
higepi 3:ac6eead48a9d 288
higepi 3:ac6eead48a9d 289
higepi 3:ac6eead48a9d 290 /*
higepi 3:ac6eead48a9d 291 #include "mbed.h"
higepi 3:ac6eead48a9d 292
higepi 3:ac6eead48a9d 293 //AX12 myax12 (PC_4, PC_5, 1,115200);
higepi 3:ac6eead48a9d 294 Serial myserial_ax12(PC_4,PC_5,115200);
higepi 3:ac6eead48a9d 295 char tata[10];
higepi 3:ac6eead48a9d 296 int position;
higepi 3:ac6eead48a9d 297
higepi 3:ac6eead48a9d 298 void Rx_Irq_fonction(void)
higepi 3:ac6eead48a9d 299 {
higepi 3:ac6eead48a9d 300 static int i_rx;
higepi 3:ac6eead48a9d 301 tata[i_rx]=myserial_ax12.getc();
higepi 3:ac6eead48a9d 302 if (tata[0]!=0xFF)
higepi 3:ac6eead48a9d 303 i_rx=0;
higepi 3:ac6eead48a9d 304 else i_rx++;
higepi 3:ac6eead48a9d 305 if ((tata[0]==0xFF) && (tata[1]==0xFF) && (tata[2]==0x01) && i_rx==7)
higepi 3:ac6eead48a9d 306 {
higepi 3:ac6eead48a9d 307 i_rx=0;
higepi 3:ac6eead48a9d 308 if(tata[4]==00) //si erreur est nulle
higepi 3:ac6eead48a9d 309 position = tata[5]+((uint16_t)tata[6]<<8);
higepi 3:ac6eead48a9d 310 tata[0]=0;
higepi 3:ac6eead48a9d 311 }
higepi 3:ac6eead48a9d 312 if (i_rx>9)
higepi 3:ac6eead48a9d 313 {
higepi 3:ac6eead48a9d 314 for(int i=0;i<10;i++)
higepi 3:ac6eead48a9d 315 tata[i]=0;
higepi 3:ac6eead48a9d 316 i_rx=0;
higepi 3:ac6eead48a9d 317 }
higepi 3:ac6eead48a9d 318 }
higepi 3:ac6eead48a9d 319
higepi 3:ac6eead48a9d 320 int main(){
higepi 3:ac6eead48a9d 321 //myax12.SetMode(1); //passage en Continuous rotation
higepi 3:ac6eead48a9d 322 char trame_demande_pos[8]={0xFF,0xFF,0x01,0x4,0x2,0x24,2,0xD2};
higepi 3:ac6eead48a9d 323 char trame_cmd_speed[9]={0xFF,0xFF,0x01,0x5,0x3,0x20,0x10,0x0,0xC6};
higepi 3:ac6eead48a9d 324 float Angle;
higepi 3:ac6eead48a9d 325 short speed;
higepi 3:ac6eead48a9d 326 char data[10];
higepi 3:ac6eead48a9d 327 char s=0;
higepi 3:ac6eead48a9d 328 float temp;
higepi 3:ac6eead48a9d 329 int position_old=0,i,a;
higepi 3:ac6eead48a9d 330 //myax12.SetCRSpeed(0.05);
higepi 3:ac6eead48a9d 331
higepi 3:ac6eead48a9d 332 for(i=0;i<=8;i++)
higepi 3:ac6eead48a9d 333 {
higepi 3:ac6eead48a9d 334 myserial_ax12.putc(trame_cmd_speed[i]);
higepi 3:ac6eead48a9d 335 }
higepi 3:ac6eead48a9d 336
higepi 3:ac6eead48a9d 337 for(i=0;i<=7;i++)
higepi 3:ac6eead48a9d 338 {
higepi 3:ac6eead48a9d 339 myserial_ax12.putc(trame_demande_pos[i]);
higepi 3:ac6eead48a9d 340 }
higepi 3:ac6eead48a9d 341 myserial_ax12.attach(&Rx_Irq_fonction, Serial::RxIrq);
higepi 3:ac6eead48a9d 342
higepi 3:ac6eead48a9d 343
higepi 3:ac6eead48a9d 344 while(1) {
higepi 3:ac6eead48a9d 345 if (position != position_old)
higepi 3:ac6eead48a9d 346 {
higepi 3:ac6eead48a9d 347 printf("\n\rposition = %d\n\r mot recu :",position);
higepi 3:ac6eead48a9d 348 for(i=0;i<=7;i++)
higepi 3:ac6eead48a9d 349 {
higepi 3:ac6eead48a9d 350 printf("%X ",tata[i]);
higepi 3:ac6eead48a9d 351 }
higepi 3:ac6eead48a9d 352 position_old=position;
higepi 3:ac6eead48a9d 353 }
higepi 3:ac6eead48a9d 354 wait(0.01);
higepi 3:ac6eead48a9d 355 a++;
higepi 3:ac6eead48a9d 356 if(!(a % 20))
higepi 3:ac6eead48a9d 357 for(i=0;i<=7;i++)
higepi 3:ac6eead48a9d 358 {
higepi 3:ac6eead48a9d 359 myserial_ax12.putc(trame_demande_pos[i]);
higepi 3:ac6eead48a9d 360 }
higepi 3:ac6eead48a9d 361 }
higepi 3:ac6eead48a9d 362
higepi 3:ac6eead48a9d 363 }
higepi 3:ac6eead48a9d 364
higepi 3:ac6eead48a9d 365 void set_speed(ID,speed)*/