motor dc driver with lcd nextion nx8048t050_011

Dependencies:   mbed QEI_hw NVIC_set_all_priorities SoftPWM

https://os.mbed.com/media/uploads/exarkun/wp_20180730_002.jpg https://os.mbed.com/media/uploads/exarkun/wp_20180823_003.jpg https://os.mbed.com/media/uploads/exarkun/wp_20180730_007.jpg https://os.mbed.com/media/uploads/exarkun/wp_20171120_004.jpg

https://os.mbed.com/media/uploads/exarkun/wp_20191002_006.jpg https://os.mbed.com/media/uploads/exarkun/wp_20191002_003.jpg https://os.mbed.com/media/uploads/exarkun/wp_20191002_004.jpg https://os.mbed.com/media/uploads/exarkun/wp_20191002_005.jpg https://os.mbed.com/media/uploads/exarkun/wp_20190322_003.jpg https://os.mbed.com/media/uploads/exarkun/wp_20180925_002.jpg https://os.mbed.com/media/uploads/exarkun/wp_20181010_006.jpg https://os.mbed.com/media/uploads/exarkun/wp_20181220_001.jpg

https://os.mbed.com/media/uploads/exarkun/wp_20181220_002.jpg

Committer:
exarkun
Date:
Thu Jul 09 08:30:19 2020 +0000
Revision:
2:e72b06f87c8b
Parent:
1:2fe82be93e80
driver motor with lcd control nextion nx8048t050

Who changed what in which revision?

UserRevisionLine numberNew contents of line
exarkun 0:ea04a1655f3b 1 ////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 2 //rajout du spi1(p5, p6, p7, p8)--------( 14 / 11 / 2017 ) task5
exarkun 0:ea04a1655f3b 3 //rajout de la conversion AD p20--------( 15 / 11 / 2017 ) task6
exarkun 0:ea04a1655f3b 4 //rajout fonction generation trajectoire a tester "il y as un probleme de position final lorsque on change "slope_time"
exarkun 0:ea04a1655f3b 5 //rajout en task2 visualisation des pulses avec "telemetry viewer v0.4"
exarkun 1:2fe82be93e80 6 //rajout afficheur nextion nx8048t050_011 ---------( 05 / 10 / 2019 )
exarkun 0:ea04a1655f3b 7
exarkun 0:ea04a1655f3b 8 #include "mbed.h"
exarkun 0:ea04a1655f3b 9 #include "qeihw.h"
exarkun 0:ea04a1655f3b 10 #include "NVIC_set_all_priorities.h"
exarkun 1:2fe82be93e80 11 #include "timer.hpp"
exarkun 1:2fe82be93e80 12 #include "NextionLCD.h"
exarkun 0:ea04a1655f3b 13
exarkun 2:e72b06f87c8b 14 char c ;//commande moteur
exarkun 2:e72b06f87c8b 15
exarkun 2:e72b06f87c8b 16 //declaration des leds visuelle utiliser pour mesurer le temps des taches
exarkun 2:e72b06f87c8b 17 DigitalOut myled1(LED1);
exarkun 2:e72b06f87c8b 18 DigitalOut myled3(LED3);
exarkun 2:e72b06f87c8b 19
exarkun 2:e72b06f87c8b 20 // Define buttons
exarkun 2:e72b06f87c8b 21 DigitalIn input4(p19);
exarkun 2:e72b06f87c8b 22 DigitalIn input3(p18);
exarkun 2:e72b06f87c8b 23 DigitalIn input2(p17);
exarkun 2:e72b06f87c8b 24 //DigitalIn input1(p16);
exarkun 2:e72b06f87c8b 25 InterruptIn input1(p16);
exarkun 2:e72b06f87c8b 26
exarkun 1:2fe82be93e80 27 //declaration des variables afficheur
exarkun 1:2fe82be93e80 28
exarkun 1:2fe82be93e80 29 #define BLACK 0
exarkun 1:2fe82be93e80 30 #define BLUE 31
exarkun 1:2fe82be93e80 31 #define BROWN 48192
exarkun 1:2fe82be93e80 32 #define GREEN 2016
exarkun 1:2fe82be93e80 33 #define YELLOW 65504
exarkun 1:2fe82be93e80 34 #define RED 63488
exarkun 1:2fe82be93e80 35 #define GRAY 33840
exarkun 1:2fe82be93e80 36 #define WHITE 65535
exarkun 1:2fe82be93e80 37
exarkun 1:2fe82be93e80 38 typedef struct ButtonCommand
exarkun 1:2fe82be93e80 39 {
exarkun 1:2fe82be93e80 40 char IsNewCommandAvailable;
exarkun 1:2fe82be93e80 41 char IsButtonPressed;
exarkun 1:2fe82be93e80 42 char cmdNb;
exarkun 1:2fe82be93e80 43 char buttonId;
exarkun 1:2fe82be93e80 44 char data1;
exarkun 1:2fe82be93e80 45 char data2;
exarkun 1:2fe82be93e80 46 char var1;
exarkun 1:2fe82be93e80 47 }ButtonCommand;
exarkun 1:2fe82be93e80 48
exarkun 1:2fe82be93e80 49 typedef enum
exarkun 1:2fe82be93e80 50 {
exarkun 1:2fe82be93e80 51 ButtonCmd = 0x65,//Touch event return data
exarkun 1:2fe82be93e80 52 PageCmd = 0x66,//Current page ID number returns
exarkun 1:2fe82be93e80 53 TouchCmd = 0x67,//Touch coordinate data return
exarkun 1:2fe82be93e80 54 TouchEentCmd = 0x68,//Touch Event in sleep mode
exarkun 1:2fe82be93e80 55 StringDataCmd = 0x70,//String variable data returns
exarkun 1:2fe82be93e80 56 NumericDataCmd = 0x71,//Numeric variable data returns
exarkun 1:2fe82be93e80 57 SleepModeCmd = 0x86,//Device automatically enters into sleep mode
exarkun 1:2fe82be93e80 58 WakeUpCmd = 0x87,//Device automatically wake up
exarkun 1:2fe82be93e80 59 StartUpCmd = 0x88,//System successful start up
exarkun 1:2fe82be93e80 60 StartSDCmd = 0x89,//Start SD card upgrade
exarkun 1:2fe82be93e80 61 DataTTRCmd = 0xfe,//Data transparent transmit ready
exarkun 1:2fe82be93e80 62
exarkun 1:2fe82be93e80 63 }CommandNb;
exarkun 1:2fe82be93e80 64
exarkun 1:2fe82be93e80 65 typedef enum
exarkun 1:2fe82be93e80 66 {
exarkun 1:2fe82be93e80 67 Page0 = 0x00,
exarkun 1:2fe82be93e80 68 Page1 = 0x01,
exarkun 1:2fe82be93e80 69 Page2 = 0x02,
exarkun 1:2fe82be93e80 70 Page3 = 0x03,
exarkun 1:2fe82be93e80 71 Page4 = 0x04,
exarkun 1:2fe82be93e80 72 Page5 = 0x05,
exarkun 1:2fe82be93e80 73 Page6 = 0x06,
exarkun 1:2fe82be93e80 74 Page7 = 0x07,
exarkun 1:2fe82be93e80 75 }PageNb;
exarkun 1:2fe82be93e80 76
exarkun 1:2fe82be93e80 77 typedef enum
exarkun 1:2fe82be93e80 78 {
exarkun 1:2fe82be93e80 79 Invalid_instruction = 0x0,
exarkun 1:2fe82be93e80 80 Successful_execution_of_instruction = 0x01,
exarkun 1:2fe82be93e80 81 Page_ID_invalid = 0x03,
exarkun 1:2fe82be93e80 82 Picture_ID_invalid = 0x04,
exarkun 1:2fe82be93e80 83 Font_ID_invalid = 0x05,
exarkun 1:2fe82be93e80 84 Baud_rate_setting_invalid = 0x11,
exarkun 1:2fe82be93e80 85 Curve_control_ID_number_or_channel_number_is_invalid = 0x12,
exarkun 1:2fe82be93e80 86 Variable_name_invalid = 0x1a,
exarkun 1:2fe82be93e80 87 Variable_operation_invalid = 0x1b,
exarkun 1:2fe82be93e80 88 Failed_to_assign = 0x1c,
exarkun 1:2fe82be93e80 89 Operate_PERFROM_failed = 0x1d,
exarkun 1:2fe82be93e80 90 Parameter_quantity_invalid = 0x1e,
exarkun 1:2fe82be93e80 91 IO_operate_failed = 0x1f,
exarkun 1:2fe82be93e80 92
exarkun 1:2fe82be93e80 93 }ErrorNb;
exarkun 1:2fe82be93e80 94
exarkun 1:2fe82be93e80 95 ButtonCommand buttonCmd;
exarkun 1:2fe82be93e80 96 char Cmd;
exarkun 1:2fe82be93e80 97 bool newCmdAvailable = false;
exarkun 1:2fe82be93e80 98 PageNb CurrentPageNb = Page0;
exarkun 1:2fe82be93e80 99
exarkun 0:ea04a1655f3b 100 // déclaration du hardware
exarkun 0:ea04a1655f3b 101 Serial pc(USBTX, USBRX);//utilisation de la liaison usb
exarkun 0:ea04a1655f3b 102
exarkun 0:ea04a1655f3b 103 QEIHW qei(QEI_DIRINV_NONE, QEI_SIGNALMODE_QUAD, QEI_CAPMODE_4X, QEI_INVINX_NONE );
exarkun 0:ea04a1655f3b 104
exarkun 0:ea04a1655f3b 105 Serial device(p9, p10);// tx, rx.//definition de la liaison rs232
exarkun 0:ea04a1655f3b 106
exarkun 0:ea04a1655f3b 107 DigitalOut frein_moteur1(p15); //changement momentané pour le projet r2d de p5 a p15
exarkun 0:ea04a1655f3b 108
exarkun 0:ea04a1655f3b 109 DigitalOut sens_rotation_moteur1(p13);
exarkun 0:ea04a1655f3b 110
exarkun 0:ea04a1655f3b 111 PwmOut PWM1(p21);
exarkun 2:e72b06f87c8b 112
exarkun 0:ea04a1655f3b 113 SPISlave spi1(p5, p6, p7, p8); // mosi, miso, sclk, ssel
exarkun 0:ea04a1655f3b 114
exarkun 1:2fe82be93e80 115 AnalogIn Ain(p20);
exarkun 2:e72b06f87c8b 116
exarkun 0:ea04a1655f3b 117 // définition des timers.
exarkun 1:2fe82be93e80 118 //Timer timer1;
exarkun 0:ea04a1655f3b 119 Timer timer2;
exarkun 0:ea04a1655f3b 120
exarkun 0:ea04a1655f3b 121 //definition spi1
exarkun 0:ea04a1655f3b 122 int reply = 0xAAAA;// en bin "1010101010101010"
exarkun 0:ea04a1655f3b 123 int valueFromMaster;
exarkun 0:ea04a1655f3b 124
exarkun 0:ea04a1655f3b 125 int Spi_val_RX[10]={0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};//buffer reception données SPI
exarkun 0:ea04a1655f3b 126 int Spi_val_TX[10]={0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};//buffer transmission données SPI
exarkun 0:ea04a1655f3b 127
exarkun 0:ea04a1655f3b 128 // définition des sorties leds
exarkun 0:ea04a1655f3b 129 DigitalOut led1(LED1);
exarkun 0:ea04a1655f3b 130 DigitalOut led3(LED3);
exarkun 0:ea04a1655f3b 131
exarkun 2:e72b06f87c8b 132 bool home_done_tag;//tag pour savoir si la home es faite
exarkun 2:e72b06f87c8b 133
exarkun 0:ea04a1655f3b 134 int t ;
exarkun 0:ea04a1655f3b 135 int x=0 ;
exarkun 0:ea04a1655f3b 136
exarkun 0:ea04a1655f3b 137 float PI=3.141592653589793;
exarkun 0:ea04a1655f3b 138
exarkun 0:ea04a1655f3b 139 //vitesse moteur
exarkun 0:ea04a1655f3b 140 int vitesse_actuelle;
exarkun 0:ea04a1655f3b 141
exarkun 0:ea04a1655f3b 142 //position codeur en pulses 2000pulses/rotation
exarkun 0:ea04a1655f3b 143 int position_actuelle;//position du codeur
exarkun 0:ea04a1655f3b 144 int position_actuelle_n1;//position du codeur a n-1
exarkun 2:e72b06f87c8b 145 int position_home;
exarkun 2:e72b06f87c8b 146 int position_sortie_capteur_de_home;
exarkun 2:e72b06f87c8b 147 int position_initial;//position a l'alumage de la machine
exarkun 2:e72b06f87c8b 148
exarkun 0:ea04a1655f3b 149 //données mecanique & moteur
exarkun 0:ea04a1655f3b 150 float J=3.375*1e-5;//0.005;//inertie en kg.m²
exarkun 0:ea04a1655f3b 151 float K=0.05;//2;//constante de couple N.m/v
exarkun 0:ea04a1655f3b 152 float R=5;//K;//resistance du moteur en Ohms
exarkun 0:ea04a1655f3b 153 float Umax=24;//24vdc tension max en volts
exarkun 0:ea04a1655f3b 154
exarkun 0:ea04a1655f3b 155 //parametres reglage
exarkun 0:ea04a1655f3b 156 float dt_vit(5*1e-4);
exarkun 0:ea04a1655f3b 157 float Ki=12;//default value=10;
exarkun 0:ea04a1655f3b 158 float Kp;
exarkun 0:ea04a1655f3b 159 float Kv;
exarkun 0:ea04a1655f3b 160 float K_sw(K);
exarkun 0:ea04a1655f3b 161 float tau;
exarkun 0:ea04a1655f3b 162 float taud=(10*dt_vit);
exarkun 0:ea04a1655f3b 163 float r1=3;//default value=2.5;derniere valeur =3
exarkun 0:ea04a1655f3b 164 float r2=r1;//default value=2.5;
exarkun 0:ea04a1655f3b 165
exarkun 0:ea04a1655f3b 166 //variables generateur de consigne///////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 167 float Teta_debut, Teta_fin, Teta_diff;
exarkun 0:ea04a1655f3b 168 float delta_Teta;
exarkun 0:ea04a1655f3b 169 float consigne;//en pulse
exarkun 0:ea04a1655f3b 170 float slope_time(1.);//en seconde
exarkun 0:ea04a1655f3b 171 bool start_slope(false);//flag debut de montee
exarkun 0:ea04a1655f3b 172 int ticks_total;
exarkun 0:ea04a1655f3b 173 int count_ticks;
exarkun 0:ea04a1655f3b 174 int count_slope(0);
exarkun 0:ea04a1655f3b 175 int count_max(0);
exarkun 0:ea04a1655f3b 176
exarkun 0:ea04a1655f3b 177 //variables calcul de l'asservissement en vitesse et position
exarkun 0:ea04a1655f3b 178 float Tetaco; //valeur de la consigne position en radians
exarkun 0:ea04a1655f3b 179 float Tetam;//valeur mesuree de la position en radians
exarkun 0:ea04a1655f3b 180
exarkun 0:ea04a1655f3b 181 float dTetam;
exarkun 0:ea04a1655f3b 182 float integ;
exarkun 0:ea04a1655f3b 183 float A;
exarkun 0:ea04a1655f3b 184
exarkun 0:ea04a1655f3b 185 float dTetam_n1;
exarkun 0:ea04a1655f3b 186 float Tetaco_n1;
exarkun 0:ea04a1655f3b 187 float Tetam_n1;
exarkun 0:ea04a1655f3b 188 float integ_n1;
exarkun 0:ea04a1655f3b 189 float cyclic;
exarkun 0:ea04a1655f3b 190 int signe_rot;
exarkun 0:ea04a1655f3b 191
exarkun 0:ea04a1655f3b 192 //variable ADC
exarkun 0:ea04a1655f3b 193 float ADCdata;
exarkun 0:ea04a1655f3b 194 float imax=1.8;
exarkun 2:e72b06f87c8b 195 int result;
exarkun 0:ea04a1655f3b 196 //declaration des differantes taches
exarkun 0:ea04a1655f3b 197 void task1_switch(void);
exarkun 0:ea04a1655f3b 198 void task2_switch(void);
exarkun 0:ea04a1655f3b 199 void task3_switch(void);
exarkun 0:ea04a1655f3b 200 void task4_switch(void);
exarkun 0:ea04a1655f3b 201 void task5_switch(void);
exarkun 0:ea04a1655f3b 202 void task6_switch(void);
exarkun 0:ea04a1655f3b 203 void task7_switch(void);
exarkun 0:ea04a1655f3b 204 void task8_switch(void);
exarkun 0:ea04a1655f3b 205
exarkun 0:ea04a1655f3b 206 //declaration des differantes interuption timer
exarkun 0:ea04a1655f3b 207 Ticker time_up1; //definition du Ticker, avec le nom “time_up1”
exarkun 0:ea04a1655f3b 208 Ticker time_up2; //definition du Ticker, avec le nom “time_up2”
exarkun 0:ea04a1655f3b 209 Ticker time_up3; //definition du Ticker, avec le nom “time_up3”
exarkun 0:ea04a1655f3b 210 Ticker time_up4; //definition du Ticker, avec le nom “time_up4”
exarkun 2:e72b06f87c8b 211 Ticker time_up5; //definition du Ticker, avec le nom “time_up5”
exarkun 2:e72b06f87c8b 212 Ticker time_up6; //definition du Ticker, avec le nom “time_up6”
exarkun 0:ea04a1655f3b 213 Ticker time_up7; //definition du Ticker, avec le nom “time_up7”
exarkun 0:ea04a1655f3b 214 Ticker time_up8; //definition du Ticker, avec le nom “time_up8”
exarkun 0:ea04a1655f3b 215
exarkun 0:ea04a1655f3b 216 //declaration des variables afficheur
exarkun 0:ea04a1655f3b 217 char mRxMsg[40];
exarkun 0:ea04a1655f3b 218 int mRxIdx;
exarkun 0:ea04a1655f3b 219 char charac;
exarkun 0:ea04a1655f3b 220 bool mTouch;
exarkun 0:ea04a1655f3b 221 int mTouchX, mTouchY;
exarkun 0:ea04a1655f3b 222
exarkun 0:ea04a1655f3b 223 int val_temp;//valleur temporaire
exarkun 0:ea04a1655f3b 224 int val_temp1;//valleur temporaire
exarkun 0:ea04a1655f3b 225
exarkun 0:ea04a1655f3b 226 ////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 227 // fonction affichage sur nextion //
exarkun 0:ea04a1655f3b 228 ////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 229
exarkun 0:ea04a1655f3b 230 bool Touch(void) {
exarkun 0:ea04a1655f3b 231 return mTouch;
exarkun 0:ea04a1655f3b 232 }
exarkun 0:ea04a1655f3b 233
exarkun 0:ea04a1655f3b 234 int TouchX(void) {
exarkun 0:ea04a1655f3b 235 return mTouchX;
exarkun 0:ea04a1655f3b 236 }
exarkun 0:ea04a1655f3b 237
exarkun 0:ea04a1655f3b 238 int TouchY(void) {
exarkun 0:ea04a1655f3b 239 return mTouchY;
exarkun 0:ea04a1655f3b 240 }
exarkun 0:ea04a1655f3b 241
exarkun 0:ea04a1655f3b 242 bool lectureRSlcd(void)
exarkun 0:ea04a1655f3b 243 {
exarkun 0:ea04a1655f3b 244 if(device.readable())
exarkun 0:ea04a1655f3b 245 {
exarkun 0:ea04a1655f3b 246 charac = device.getc();
exarkun 0:ea04a1655f3b 247 mRxMsg[mRxIdx] = charac;
exarkun 0:ea04a1655f3b 248 mRxIdx++;
exarkun 0:ea04a1655f3b 249 if ((mRxIdx >= 3) && (mRxMsg[mRxIdx-1] == 0xff) && (mRxMsg[mRxIdx-2] == 0xff) && (mRxMsg[mRxIdx-3] == 0xff)) //valid rx message
exarkun 0:ea04a1655f3b 250 {
exarkun 0:ea04a1655f3b 251 mRxIdx=0;
exarkun 0:ea04a1655f3b 252
exarkun 0:ea04a1655f3b 253 if(mRxMsg[0] == 0x67) //Touch coordinate data return
exarkun 0:ea04a1655f3b 254 { mTouchX = (mRxMsg[1]*256) + mRxMsg[2];
exarkun 0:ea04a1655f3b 255 mTouchY = (mRxMsg[3]*256) + mRxMsg[4];
exarkun 0:ea04a1655f3b 256 if(mRxMsg[5] == 0x01)
exarkun 0:ea04a1655f3b 257 mTouch = true;
exarkun 0:ea04a1655f3b 258 else
exarkun 0:ea04a1655f3b 259 mTouch = false;
exarkun 0:ea04a1655f3b 260 }
exarkun 0:ea04a1655f3b 261 }
exarkun 0:ea04a1655f3b 262 }
exarkun 0:ea04a1655f3b 263 return mTouch;
exarkun 0:ea04a1655f3b 264 }
exarkun 0:ea04a1655f3b 265
exarkun 0:ea04a1655f3b 266 //lecture de la donnée val d une reponse de sliders
exarkun 0:ea04a1655f3b 267 int lecture_slider_RS_lcd(void)
exarkun 0:ea04a1655f3b 268 {
exarkun 0:ea04a1655f3b 269 if(device.readable())
exarkun 0:ea04a1655f3b 270 {
exarkun 0:ea04a1655f3b 271 charac = device.getc();
exarkun 0:ea04a1655f3b 272 mRxMsg[mRxIdx] = charac;
exarkun 0:ea04a1655f3b 273 mRxIdx++;
exarkun 0:ea04a1655f3b 274 if ((mRxIdx >= 3) && (mRxMsg[mRxIdx-1] == 0xff) && (mRxMsg[mRxIdx-2] == 0xff) && (mRxMsg[mRxIdx-3] == 0xff)) //valid rx message
exarkun 0:ea04a1655f3b 275 {
exarkun 0:ea04a1655f3b 276 mRxIdx=0;
exarkun 0:ea04a1655f3b 277
exarkun 0:ea04a1655f3b 278 if(mRxMsg[0] == 0x71) //sliders data return
exarkun 0:ea04a1655f3b 279 {
exarkun 2:e72b06f87c8b 280 val_temp=mRxMsg[1];
exarkun 0:ea04a1655f3b 281 }
exarkun 0:ea04a1655f3b 282 }
exarkun 0:ea04a1655f3b 283 }
exarkun 0:ea04a1655f3b 284 return val_temp;
exarkun 0:ea04a1655f3b 285 }
exarkun 0:ea04a1655f3b 286
exarkun 0:ea04a1655f3b 287 //recuperation de la valeur val du sliders h0
exarkun 1:2fe82be93e80 288 //example : get_val(0);
exarkun 0:ea04a1655f3b 289 void get_val(int n)
exarkun 0:ea04a1655f3b 290 {
exarkun 0:ea04a1655f3b 291 device.printf("get h%d.val %c%c%c",n, 0xff, 0xff, 0xff);//recuperation de la valeur val du sliders h0
exarkun 0:ea04a1655f3b 292 }
exarkun 0:ea04a1655f3b 293 //fonction general recuperation de la valeur val de h0
exarkun 0:ea04a1655f3b 294 void get_val_h0()
exarkun 0:ea04a1655f3b 295 {
exarkun 0:ea04a1655f3b 296 device.printf("get h0.val %c%c%c", 0xff, 0xff, 0xff);//recuperation de la valeur val du sliders h0
exarkun 0:ea04a1655f3b 297 }
exarkun 0:ea04a1655f3b 298
exarkun 0:ea04a1655f3b 299 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 300 // Convertion pulses to radians //
exarkun 0:ea04a1655f3b 301 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 302
exarkun 0:ea04a1655f3b 303 //PI =3.141592653589793 =1000 pulses codeurs
exarkun 0:ea04a1655f3b 304 float pulsesToRadians(int pulses)
exarkun 0:ea04a1655f3b 305 {
exarkun 0:ea04a1655f3b 306 float radians_VAL;
exarkun 0:ea04a1655f3b 307 radians_VAL=(pulses*PI)/1000.;
exarkun 0:ea04a1655f3b 308 return radians_VAL;
exarkun 0:ea04a1655f3b 309 };
exarkun 0:ea04a1655f3b 310
exarkun 0:ea04a1655f3b 311 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 312 // calcule de la vitesse angulaire //
exarkun 0:ea04a1655f3b 313 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 314
exarkun 0:ea04a1655f3b 315 // ici le code du calcule pas encore fait !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
exarkun 0:ea04a1655f3b 316
exarkun 0:ea04a1655f3b 317 // Convert ASCII string to unsigned 32-bit decimal "string is null-terminated"
exarkun 0:ea04a1655f3b 318 unsigned long Str2UDec(unsigned char string[]){
exarkun 0:ea04a1655f3b 319 unsigned long i = 0; // index
exarkun 0:ea04a1655f3b 320 unsigned long n = 0; // number
exarkun 0:ea04a1655f3b 321 while(string[i] != 0){
exarkun 0:ea04a1655f3b 322 n = 10*n +(string[i]-0x30);
exarkun 0:ea04a1655f3b 323 i++;
exarkun 0:ea04a1655f3b 324 }
exarkun 0:ea04a1655f3b 325 return n;
exarkun 0:ea04a1655f3b 326 }
exarkun 0:ea04a1655f3b 327
exarkun 0:ea04a1655f3b 328 /////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 329 // declaration de la fonction moteur1 //
exarkun 0:ea04a1655f3b 330 /////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 331
exarkun 0:ea04a1655f3b 332 void motor1_mouve(int position1,int T1,int position2,int T2,int position3,int T3)
exarkun 0:ea04a1655f3b 333 {
exarkun 0:ea04a1655f3b 334
exarkun 0:ea04a1655f3b 335 /////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 336 // mouvement trapezoide non tésté //
exarkun 0:ea04a1655f3b 337 /////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 338 /*
exarkun 0:ea04a1655f3b 339 timer1.start(); // déclenchement du timer1
exarkun 0:ea04a1655f3b 340 timer2.start(); // déclenchement du timer2
exarkun 0:ea04a1655f3b 341 //ACC
exarkun 0:ea04a1655f3b 342 consigne=position1 ;
exarkun 0:ea04a1655f3b 343 slope_time=T1;
exarkun 0:ea04a1655f3b 344 start_slope=true;
exarkun 0:ea04a1655f3b 345 //do{} while (timer1.read_ms()!=T1);
exarkun 0:ea04a1655f3b 346 do{} while (timer1.read_ms()<T1);
exarkun 0:ea04a1655f3b 347 if (timer1.read_ms()>T1) // lecture du temps du timer1 en ms
exarkun 0:ea04a1655f3b 348 {
exarkun 0:ea04a1655f3b 349 //device.printf("TIME out T1 ms \r\n");
exarkun 0:ea04a1655f3b 350 device.printf("t0.txt=\"time1out\"%c%c%c", 0xff, 0xff, 0xff);
exarkun 0:ea04a1655f3b 351 }
exarkun 0:ea04a1655f3b 352
exarkun 0:ea04a1655f3b 353 timer1.reset(); // remise à zéro du timer1
exarkun 0:ea04a1655f3b 354 //vmax
exarkun 0:ea04a1655f3b 355 timer1.start(); // déclenchement du timer1
exarkun 0:ea04a1655f3b 356 consigne=position2 ;
exarkun 0:ea04a1655f3b 357 slope_time=T2;
exarkun 0:ea04a1655f3b 358 start_slope=true;
exarkun 0:ea04a1655f3b 359 //do{} while (timer1.read_ms()!=T2);
exarkun 0:ea04a1655f3b 360 do{} while (timer1.read_ms()<T2);
exarkun 0:ea04a1655f3b 361 if (timer1.read_ms()>T2) // lecture du temps du timer1 en ms
exarkun 0:ea04a1655f3b 362 {
exarkun 0:ea04a1655f3b 363 //device.printf("TIME out T2 ms \r\n");
exarkun 0:ea04a1655f3b 364 device.printf("t0.txt=\"time2out\"%c%c%c", 0xff, 0xff, 0xff);
exarkun 0:ea04a1655f3b 365 }
exarkun 0:ea04a1655f3b 366 timer1.reset(); // remise à zéro du timer1
exarkun 0:ea04a1655f3b 367 //DCC
exarkun 0:ea04a1655f3b 368 timer1.start(); // déclenchement du timer1
exarkun 0:ea04a1655f3b 369 consigne=position3 ;
exarkun 0:ea04a1655f3b 370 slope_time=T3;
exarkun 0:ea04a1655f3b 371 start_slope=true;
exarkun 0:ea04a1655f3b 372 //do{} while (timer1.read_ms()!=T3);
exarkun 0:ea04a1655f3b 373 do{} while (timer1.read_ms()<T3);
exarkun 0:ea04a1655f3b 374 if (timer1.read_ms()>T3) // lecture du temps du timer1 en ms
exarkun 0:ea04a1655f3b 375 {
exarkun 0:ea04a1655f3b 376 //device.printf("TIME out T3 ms \r\n");
exarkun 0:ea04a1655f3b 377 device.printf("t0.txt=\"time3out\"%c%c%c", 0xff, 0xff, 0xff);
exarkun 0:ea04a1655f3b 378 }
exarkun 0:ea04a1655f3b 379 timer1.reset(); // remise à zéro du timer1
exarkun 0:ea04a1655f3b 380
exarkun 0:ea04a1655f3b 381 if (timer2.read_ms()>(T1+T2+T3)) // lecture du temps du timer1 en ms
exarkun 0:ea04a1655f3b 382 {
exarkun 0:ea04a1655f3b 383 //device.printf("TIME out motor \r\n");
exarkun 0:ea04a1655f3b 384 device.printf("t0.txt=\"timeMout\"%c%c%c", 0xff, 0xff, 0xff);
exarkun 0:ea04a1655f3b 385 }
exarkun 0:ea04a1655f3b 386
exarkun 0:ea04a1655f3b 387 timer2.reset(); // remise à zéro du timer2
exarkun 1:2fe82be93e80 388 */
exarkun 0:ea04a1655f3b 389 };
exarkun 0:ea04a1655f3b 390
exarkun 0:ea04a1655f3b 391 //////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 392 // declaration des differantes pages //
exarkun 0:ea04a1655f3b 393 //////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 394
exarkun 0:ea04a1655f3b 395 void page0()//code de la page : 6600ffffff
exarkun 0:ea04a1655f3b 396 {
exarkun 0:ea04a1655f3b 397
exarkun 0:ea04a1655f3b 398 //device.printf("cls RED %c%c%c", 0xff, 0xff, 0xff); //clear screen color red fonnctionne pas ??
exarkun 0:ea04a1655f3b 399 //device.printf("rest%c%c%c", 0xff, 0xff, 0xff);//y as un bug toute les commande prochine fonctionne plus ???
exarkun 0:ea04a1655f3b 400 //wait_ms(10);
exarkun 0:ea04a1655f3b 401
exarkun 0:ea04a1655f3b 402 //device.printf("page %d%c%c%c",0x0, 0xff, 0xff, 0xff);// saut a la page0------sy
exarkun 1:2fe82be93e80 403 //wait_ms(10);
exarkun 1:2fe82be93e80 404 device.printf("t0.txt=\"position\"%c%c%c", 0xff, 0xff, 0xff);//affiche la version soft -------sy
exarkun 1:2fe82be93e80 405 device.printf("t6.txt=\"soft V0.014\"%c%c%c", 0xff, 0xff, 0xff);//affiche la version soft -------sy
exarkun 1:2fe82be93e80 406 //wait_ms(5);
exarkun 0:ea04a1655f3b 407 device.printf("b13.txt=\"flyready\"%c%c%c", 0xff, 0xff, 0xff);//affiche la version soft -------sy
exarkun 1:2fe82be93e80 408 //wait_ms(5);
exarkun 0:ea04a1655f3b 409 device.printf("b12.txt=\"BREAK\"%c%c%c", 0xff, 0xff, 0xff);//affiche la version soft -------sy
exarkun 1:2fe82be93e80 410 //wait_ms(5);
exarkun 0:ea04a1655f3b 411 device.printf("b11.txt=\"LANDING\"%c%c%c", 0xff, 0xff, 0xff);//affiche la version soft -------sy
exarkun 1:2fe82be93e80 412 //wait_ms(5);
exarkun 0:ea04a1655f3b 413 device.printf("b21.txt=\"Quantum\"%c%c%c", 0xff, 0xff, 0xff);//affiche la version soft -------sy
exarkun 1:2fe82be93e80 414 //wait_ms(5);
exarkun 0:ea04a1655f3b 415
exarkun 0:ea04a1655f3b 416 device.printf("b18.txt=\"Speed M\"%c%c%c", 0xff, 0xff, 0xff);//affiche la version soft -------sy
exarkun 1:2fe82be93e80 417 //wait_ms(5);
exarkun 0:ea04a1655f3b 418 device.printf("b19.txt=\"couple M\"%c%c%c", 0xff, 0xff, 0xff);//affiche la version soft -------sy
exarkun 1:2fe82be93e80 419 //wait_ms(5);
exarkun 0:ea04a1655f3b 420 device.printf("b20.txt=\"Afterburner\"%c%c%c", 0xff, 0xff, 0xff);//affiche la version soft -------sy
exarkun 1:2fe82be93e80 421 //wait_ms(5);
exarkun 0:ea04a1655f3b 422
exarkun 0:ea04a1655f3b 423 //device.printf("b0.pic=17%c%c%c", 0xff, 0xff, 0xff);//chager l image du bouton b0 par l image n°17------sy
exarkun 0:ea04a1655f3b 424 //wait_ms(10);
exarkun 0:ea04a1655f3b 425 //device.printf("ref b0%c%c%c", 0xff, 0xff, 0xff);//rafrechir b0--------------sy
exarkun 0:ea04a1655f3b 426
exarkun 0:ea04a1655f3b 427 //wait_ms(10);
exarkun 0:ea04a1655f3b 428
exarkun 0:ea04a1655f3b 429 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 430 //FLY READY switch
exarkun 0:ea04a1655f3b 431 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x19)&&(mRxMsg[3] == 0x01))
exarkun 2:e72b06f87c8b 432 {
exarkun 0:ea04a1655f3b 433 //keyboard.printf("r");//flight ready
exarkun 0:ea04a1655f3b 434 }//uniquement le bouton allumeras la led 1 en release ---------------SY
exarkun 0:ea04a1655f3b 435 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 436 //space break switch
exarkun 0:ea04a1655f3b 437 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x18)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 438 {
exarkun 0:ea04a1655f3b 439 //keyboard.printf("x");//spacebreak
exarkun 0:ea04a1655f3b 440 //wait(0.5);
exarkun 0:ea04a1655f3b 441 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 442 {
exarkun 0:ea04a1655f3b 443 //lectureRSlcd();
exarkun 0:ea04a1655f3b 444 //keyboard.printf("x");//spacebreak
exarkun 0:ea04a1655f3b 445 //wait(0.035);
exarkun 0:ea04a1655f3b 446 }
exarkun 0:ea04a1655f3b 447 }//uniquement le bouton allumeras la led 2 en press event ---------------SY
exarkun 0:ea04a1655f3b 448 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 449 //LANDING switch
exarkun 0:ea04a1655f3b 450 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x17)&&(mRxMsg[3] == 0x01))
exarkun 2:e72b06f87c8b 451 {
exarkun 0:ea04a1655f3b 452 //keyboard.printf("n");//landing mode
exarkun 0:ea04a1655f3b 453 }//uniquement le bouton home allumeras la led 3 en release ---------------SY
exarkun 0:ea04a1655f3b 454
exarkun 0:ea04a1655f3b 455 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 456 //strafe up switch
exarkun 0:ea04a1655f3b 457 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x13)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 458 {
exarkun 0:ea04a1655f3b 459 //keyboard.printf(" ");//strafe up
exarkun 0:ea04a1655f3b 460 //wait(0.5);
exarkun 0:ea04a1655f3b 461 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 462 {
exarkun 0:ea04a1655f3b 463 //lectureRSlcd();
exarkun 0:ea04a1655f3b 464 //keyboard.printf(" ");//strafe up
exarkun 0:ea04a1655f3b 465 //wait(0.035);
exarkun 0:ea04a1655f3b 466 }
exarkun 0:ea04a1655f3b 467
exarkun 0:ea04a1655f3b 468 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 469
exarkun 0:ea04a1655f3b 470 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 471 //strafe down switch
exarkun 0:ea04a1655f3b 472 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x14)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 473 {
exarkun 0:ea04a1655f3b 474 //keyboard.keyCode(KEY_CTRL);//strafe down
exarkun 0:ea04a1655f3b 475 //wait(0.5);
exarkun 0:ea04a1655f3b 476 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 477 {
exarkun 0:ea04a1655f3b 478 //lectureRSlcd();
exarkun 0:ea04a1655f3b 479 //keyboard.keyCode(KEY_CTRL);//strafe down
exarkun 0:ea04a1655f3b 480 //wait(0.035);
exarkun 0:ea04a1655f3b 481 }
exarkun 0:ea04a1655f3b 482
exarkun 0:ea04a1655f3b 483 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 484
exarkun 0:ea04a1655f3b 485 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 486 //forward switch
exarkun 0:ea04a1655f3b 487 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x02)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 488 {
exarkun 0:ea04a1655f3b 489 //keyboard.printf("w");//vers l'avant
exarkun 0:ea04a1655f3b 490 //wait(0.5);
exarkun 0:ea04a1655f3b 491
exarkun 0:ea04a1655f3b 492 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 493 {
exarkun 0:ea04a1655f3b 494 //lectureRSlcd();
exarkun 0:ea04a1655f3b 495 //keyboard.printf("w");//vers l'avant
exarkun 0:ea04a1655f3b 496 //wait(0.035);
exarkun 0:ea04a1655f3b 497 }
exarkun 0:ea04a1655f3b 498
exarkun 0:ea04a1655f3b 499 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 500
exarkun 0:ea04a1655f3b 501 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 502 //rearward switch
exarkun 0:ea04a1655f3b 503 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x01)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 504 {
exarkun 0:ea04a1655f3b 505 //keyboard.printf("s");//vers l arriere
exarkun 0:ea04a1655f3b 506 //wait(0.5);
exarkun 0:ea04a1655f3b 507
exarkun 0:ea04a1655f3b 508 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 509 {
exarkun 0:ea04a1655f3b 510 //lectureRSlcd();
exarkun 0:ea04a1655f3b 511 //keyboard.printf("s");//vers l arriere
exarkun 0:ea04a1655f3b 512 //wait(0.035);
exarkun 0:ea04a1655f3b 513 }
exarkun 0:ea04a1655f3b 514
exarkun 0:ea04a1655f3b 515 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 516
exarkun 0:ea04a1655f3b 517 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 518 //Right switch
exarkun 0:ea04a1655f3b 519 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x03)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 520 {
exarkun 0:ea04a1655f3b 521 //keyboard.printf("d");//vers la droite
exarkun 0:ea04a1655f3b 522 //wait(0.5);
exarkun 0:ea04a1655f3b 523
exarkun 0:ea04a1655f3b 524 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 525 {
exarkun 0:ea04a1655f3b 526 //lectureRSlcd();
exarkun 0:ea04a1655f3b 527 //keyboard.printf("d");//vers la droite
exarkun 0:ea04a1655f3b 528 //wait(0.035);
exarkun 0:ea04a1655f3b 529 }
exarkun 0:ea04a1655f3b 530
exarkun 0:ea04a1655f3b 531 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 532
exarkun 0:ea04a1655f3b 533 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 534 //Left switch
exarkun 0:ea04a1655f3b 535 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x04)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 536 {
exarkun 0:ea04a1655f3b 537
exarkun 0:ea04a1655f3b 538 //keyboard.printf("a");//vers la gauche
exarkun 0:ea04a1655f3b 539 //wait(0.5);
exarkun 0:ea04a1655f3b 540
exarkun 0:ea04a1655f3b 541 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 542 {
exarkun 0:ea04a1655f3b 543 //lectureRSlcd();
exarkun 0:ea04a1655f3b 544 //keyboard.printf("a");//vers la gauche
exarkun 0:ea04a1655f3b 545 //wait(0.035);
exarkun 0:ea04a1655f3b 546 }
exarkun 0:ea04a1655f3b 547
exarkun 0:ea04a1655f3b 548 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 549
exarkun 0:ea04a1655f3b 550 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 551 //roll left switch
exarkun 0:ea04a1655f3b 552 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x1a)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 553 {
exarkun 0:ea04a1655f3b 554 //keyboard.printf("e");//rouli gauche
exarkun 0:ea04a1655f3b 555 //wait(0.5);
exarkun 0:ea04a1655f3b 556
exarkun 0:ea04a1655f3b 557 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 558 {
exarkun 0:ea04a1655f3b 559 //lectureRSlcd();
exarkun 0:ea04a1655f3b 560 //keyboard.printf("e");//rouli gauche
exarkun 0:ea04a1655f3b 561 //wait(0.035);
exarkun 0:ea04a1655f3b 562 }
exarkun 0:ea04a1655f3b 563
exarkun 0:ea04a1655f3b 564 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 565
exarkun 0:ea04a1655f3b 566 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 567 //roll Right switch
exarkun 0:ea04a1655f3b 568 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x05)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 569 {
exarkun 0:ea04a1655f3b 570
exarkun 0:ea04a1655f3b 571 //keyboard.printf("q");//rouli droit
exarkun 0:ea04a1655f3b 572 //wait(0.5);
exarkun 0:ea04a1655f3b 573
exarkun 0:ea04a1655f3b 574 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 575 {
exarkun 0:ea04a1655f3b 576 //lectureRSlcd();
exarkun 0:ea04a1655f3b 577 //keyboard.printf("q");//rouli droit
exarkun 0:ea04a1655f3b 578 //wait(0.035);
exarkun 0:ea04a1655f3b 579 }
exarkun 0:ea04a1655f3b 580
exarkun 0:ea04a1655f3b 581 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 582
exarkun 0:ea04a1655f3b 583 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 584 //tangage vers le bas switch
exarkun 0:ea04a1655f3b 585 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x1b)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 586 {
exarkun 0:ea04a1655f3b 587
exarkun 0:ea04a1655f3b 588 //keyboard.printf("");//touche non affecté
exarkun 0:ea04a1655f3b 589 //wait(0.5);
exarkun 0:ea04a1655f3b 590
exarkun 0:ea04a1655f3b 591 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 592 {
exarkun 0:ea04a1655f3b 593 //lectureRSlcd();
exarkun 0:ea04a1655f3b 594 //keyboard.printf("");//touche non affecté la touche non connue
exarkun 0:ea04a1655f3b 595 //wait(0.035);
exarkun 0:ea04a1655f3b 596 }
exarkun 0:ea04a1655f3b 597
exarkun 0:ea04a1655f3b 598 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 599
exarkun 0:ea04a1655f3b 600 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 601 //tangage vers le haut switch
exarkun 0:ea04a1655f3b 602 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x1b)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 603 {
exarkun 0:ea04a1655f3b 604
exarkun 0:ea04a1655f3b 605 //keyboard.printf("");//touche non affecté la touche non connue
exarkun 0:ea04a1655f3b 606 //wait(0.5);
exarkun 0:ea04a1655f3b 607
exarkun 0:ea04a1655f3b 608 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 609 {
exarkun 0:ea04a1655f3b 610 //lectureRSlcd();
exarkun 0:ea04a1655f3b 611 //keyboard.printf("");//touche non affecté
exarkun 0:ea04a1655f3b 612 //wait(0.035);
exarkun 0:ea04a1655f3b 613 }
exarkun 0:ea04a1655f3b 614
exarkun 0:ea04a1655f3b 615 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 616
exarkun 0:ea04a1655f3b 617
exarkun 0:ea04a1655f3b 618
exarkun 0:ea04a1655f3b 619 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 620 //quantum drive
exarkun 0:ea04a1655f3b 621 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x1f)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 622 {
exarkun 0:ea04a1655f3b 623
exarkun 0:ea04a1655f3b 624 //keyboard.printf("b");//touche non affecté la touche non connue
exarkun 0:ea04a1655f3b 625 //wait(0.5);
exarkun 0:ea04a1655f3b 626
exarkun 0:ea04a1655f3b 627 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 628 {
exarkun 0:ea04a1655f3b 629 //lectureRSlcd();
exarkun 0:ea04a1655f3b 630 //keyboard.printf("b");//touche non affecté
exarkun 0:ea04a1655f3b 631 //wait(0.035);
exarkun 0:ea04a1655f3b 632 }
exarkun 0:ea04a1655f3b 633
exarkun 0:ea04a1655f3b 634 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 635
exarkun 0:ea04a1655f3b 636 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 637 //Speed M
exarkun 0:ea04a1655f3b 638 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x1c)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 639 {
exarkun 0:ea04a1655f3b 640
exarkun 0:ea04a1655f3b 641 //keyboard.printf("c");//touche non affecté la touche non connue
exarkun 0:ea04a1655f3b 642 //wait(0.5);
exarkun 0:ea04a1655f3b 643
exarkun 0:ea04a1655f3b 644 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 645 {
exarkun 0:ea04a1655f3b 646 //lectureRSlcd();
exarkun 0:ea04a1655f3b 647 //keyboard.printf("c");//touche non affecté
exarkun 0:ea04a1655f3b 648 //wait(0.035);
exarkun 0:ea04a1655f3b 649 }
exarkun 0:ea04a1655f3b 650
exarkun 0:ea04a1655f3b 651 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 652
exarkun 0:ea04a1655f3b 653 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 654 //Speed M
exarkun 0:ea04a1655f3b 655 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x1c)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 656 {
exarkun 0:ea04a1655f3b 657
exarkun 0:ea04a1655f3b 658 //keyboard.printf("b");//touche non affecté la touche non connue
exarkun 0:ea04a1655f3b 659 //wait(0.5);
exarkun 0:ea04a1655f3b 660
exarkun 0:ea04a1655f3b 661 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 662 {
exarkun 0:ea04a1655f3b 663 //lectureRSlcd();
exarkun 0:ea04a1655f3b 664 //keyboard.printf("c");//touche non affecté
exarkun 0:ea04a1655f3b 665 //wait(0.035);
exarkun 0:ea04a1655f3b 666 }
exarkun 0:ea04a1655f3b 667
exarkun 0:ea04a1655f3b 668 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 669
exarkun 0:ea04a1655f3b 670 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 671 //Afterburner
exarkun 0:ea04a1655f3b 672 if((mRxMsg[0] == 0x65)&&(mRxMsg[1] == 0x00)&&(mRxMsg[2] == 0x1c)&&(mRxMsg[3] == 0x01))//press
exarkun 2:e72b06f87c8b 673 {
exarkun 0:ea04a1655f3b 674
exarkun 0:ea04a1655f3b 675 //keyboard.keyCode(KEY_SHIFT);
exarkun 0:ea04a1655f3b 676 //wait(0.5);
exarkun 0:ea04a1655f3b 677
exarkun 0:ea04a1655f3b 678 while (mRxMsg[3]!=0x00)
exarkun 0:ea04a1655f3b 679 {
exarkun 0:ea04a1655f3b 680 //lectureRSlcd();
exarkun 0:ea04a1655f3b 681 //keyboard.keyCode(KEY_SHIFT);
exarkun 0:ea04a1655f3b 682 //wait(0.035);
exarkun 0:ea04a1655f3b 683 }
exarkun 0:ea04a1655f3b 684
exarkun 0:ea04a1655f3b 685 }//uniquement le bouton allumeras la led 4 en release ---------------SY
exarkun 0:ea04a1655f3b 686
exarkun 0:ea04a1655f3b 687
exarkun 0:ea04a1655f3b 688 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 689
exarkun 0:ea04a1655f3b 690 //ici il faut completer le code pour pouvoir detecter le bon bouton en press event et release event
exarkun 0:ea04a1655f3b 691 //example le bouton start press event 65 01 01 01 ff ff ff et en release event 65 01 01 00 ff ff ff . rem:code touche repris par simulation avec le soft nextion
exarkun 2:e72b06f87c8b 692
exarkun 0:ea04a1655f3b 693 }
exarkun 0:ea04a1655f3b 694
exarkun 0:ea04a1655f3b 695 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 696 //******************************************************************page1******************************************************************//
exarkun 0:ea04a1655f3b 697 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 698
exarkun 0:ea04a1655f3b 699 void page1()//code de la page : 6601ffffff
exarkun 0:ea04a1655f3b 700 {
exarkun 0:ea04a1655f3b 701 device.printf("bt0.txt=\"BREAK1\"%c%c%c", 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 0:ea04a1655f3b 702 }
exarkun 0:ea04a1655f3b 703
exarkun 0:ea04a1655f3b 704 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 705 //******************************************************************page2******************************************************************//
exarkun 0:ea04a1655f3b 706 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 707
exarkun 0:ea04a1655f3b 708 void page2()//code de la page : 6602ffffff
exarkun 0:ea04a1655f3b 709 {
exarkun 0:ea04a1655f3b 710 device.printf("b0.txt=\"BREAK2\"%c%c%c", 0xff, 0xff, 0xff);//affiche break sur bouton b0 -------sy
exarkun 1:2fe82be93e80 711 //get_val(3);//donner l'ordre d envoyer la valeur val de h3
exarkun 1:2fe82be93e80 712 //int valeur_val=lecture_slider_RS_lcd();//recuperation de la valeur val de h3
exarkun 1:2fe82be93e80 713 //device.printf("n3.val=%d %c%c%c", valeur_val, 0xff, 0xff, 0xff);//affiche le nombre sur n1 -------sy
exarkun 1:2fe82be93e80 714 //device.printf("z0.val=%d %c%c%c", valeur_val, 0xff, 0xff, 0xff);//affiche le nombre sur z0 gauge -------sy
exarkun 0:ea04a1655f3b 715 }
exarkun 0:ea04a1655f3b 716
exarkun 0:ea04a1655f3b 717 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 718 //******************************************************************page3******************************************************************//
exarkun 0:ea04a1655f3b 719 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 720
exarkun 0:ea04a1655f3b 721 void page3()//code de la page : 6603ffffff
exarkun 0:ea04a1655f3b 722 {
exarkun 1:2fe82be93e80 723 device.printf("t0.txt=\"BREAK3\"%c%c%c", 0xff, 0xff, 0xff);//affiche break sur bouton b19 -------sy
exarkun 0:ea04a1655f3b 724 }
exarkun 0:ea04a1655f3b 725
exarkun 0:ea04a1655f3b 726 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 727 //******************************************************************page4******************************************************************//
exarkun 0:ea04a1655f3b 728 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 729
exarkun 0:ea04a1655f3b 730 void page4()//code de la page : 6604ffffff
exarkun 0:ea04a1655f3b 731 {
exarkun 0:ea04a1655f3b 732 device.printf("t0.txt=\"BREAK4\"%c%c%c", 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 0:ea04a1655f3b 733
exarkun 1:2fe82be93e80 734 // get_val_h0();
exarkun 1:2fe82be93e80 735 // val_temp1=lecture_slider_RS_lcd();//recuperation de la valeur du sliders h0 dans val_temp
exarkun 1:2fe82be93e80 736 // device.printf("n1.val=%d %c%c%c", val_temp1, 0xff, 0xff, 0xff);//affiche le nombre sur n1 -------sy
exarkun 0:ea04a1655f3b 737
exarkun 0:ea04a1655f3b 738 }
exarkun 0:ea04a1655f3b 739
exarkun 0:ea04a1655f3b 740 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 741 //******************************************************************page5******************************************************************//
exarkun 0:ea04a1655f3b 742 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 743
exarkun 0:ea04a1655f3b 744 void page5()//code de la page : 6605ffffff
exarkun 0:ea04a1655f3b 745 {
exarkun 1:2fe82be93e80 746 //device.printf("t0.txt=\"BREAK5\"%c%c%c", 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 747 //device.printf("t1.txt=\"500ms/div\"%c%c%c", 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 748 //device.printf("g0.txt=\"position M\"%c%c%c", 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 0:ea04a1655f3b 749 device.printf("add 1,0,%d%c%c%c", (position_actuelle/500), 0xff, 0xff, 0xff);// pour la fonction waveform add id1,chanel0,position actu
exarkun 0:ea04a1655f3b 750 }
exarkun 0:ea04a1655f3b 751
exarkun 0:ea04a1655f3b 752 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 753 //******************************************************************page6******************************************************************//
exarkun 0:ea04a1655f3b 754 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 755
exarkun 0:ea04a1655f3b 756 void page6()//code de la page : 6606ffffff
exarkun 0:ea04a1655f3b 757 {
exarkun 1:2fe82be93e80 758 //device.printf("t1.txt=\"courant\"%c%c%c", 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 759 //device.printf("t0.txt=\"position\"%c%c%c", 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 0:ea04a1655f3b 760 device.printf("add 2,0,%d%c%c%c", (position_actuelle/500), 0xff, 0xff, 0xff);// pour la fonction waveform add id1,chanel0,position actu
exarkun 0:ea04a1655f3b 761 }
exarkun 0:ea04a1655f3b 762
exarkun 1:2fe82be93e80 763 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 764 //******************************************************************page7******************************************************************//
exarkun 1:2fe82be93e80 765 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 766
exarkun 1:2fe82be93e80 767 void page7()//code de la page : 6607ffffff
exarkun 1:2fe82be93e80 768 {
exarkun 1:2fe82be93e80 769 device.printf("t0.txt=\"%x\"%c%c%c", mRxMsg[0], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 770 device.printf("t1.txt=\"%x\"%c%c%c", mRxMsg[1], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 771 device.printf("t2.txt=\"%x\"%c%c%c", mRxMsg[2], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 772 device.printf("t3.txt=\"%x\"%c%c%c", mRxMsg[3], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 773 device.printf("t4.txt=\"%x\"%c%c%c", mRxMsg[4], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 774 device.printf("t5.txt=\"%x\"%c%c%c", mRxMsg[5], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 775 device.printf("t6.txt=\"%x\"%c%c%c", mRxMsg[6], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 776 device.printf("t7.txt=\"%x\"%c%c%c", mRxMsg[7], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 777 device.printf("t8.txt=\"%x\"%c%c%c", mRxMsg[8], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 778 device.printf("t9.txt=\"%x\"%c%c%c", mRxMsg[9], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 779 device.printf("t10.txt=\"%x\"%c%c%c", mRxMsg[10], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 780 device.printf("t11.txt=\"%x\"%c%c%c", mRxMsg[11], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 781 device.printf("t12.txt=\"%x\"%c%c%c", mRxMsg[12], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 782 device.printf("t13.txt=\"%x\"%c%c%c", mRxMsg[13], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 783 device.printf("t15.txt=\"%x\"%c%c%c", mRxMsg[14], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 784 device.printf("t16.txt=\"%x\"%c%c%c", mRxMsg[15], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 785 device.printf("t17.txt=\"%x\"%c%c%c", mRxMsg[16], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 786 device.printf("t18.txt=\"%x\"%c%c%c", mRxMsg[17], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 787 device.printf("t19.txt=\"%x\"%c%c%c", mRxMsg[18], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 788 device.printf("t20.txt=\"%x\"%c%c%c", mRxMsg[19], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 789 device.printf("t21.txt=\"%x\"%c%c%c", mRxMsg[20], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 790 device.printf("t22.txt=\"%x\"%c%c%c", mRxMsg[21], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 791 device.printf("t23.txt=\"%x\"%c%c%c", mRxMsg[22], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 792 device.printf("t24.txt=\"%x\"%c%c%c", mRxMsg[23], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 793 device.printf("t25.txt=\"%x\"%c%c%c", mRxMsg[24], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 794 device.printf("t26.txt=\"%x\"%c%c%c", mRxMsg[25], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 795 device.printf("t27.txt=\"%x\"%c%c%c", mRxMsg[26], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 796 device.printf("t28.txt=\"%x\"%c%c%c", mRxMsg[27], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 797 device.printf("t30.txt=\"%x\"%c%c%c", mRxMsg[28], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 798 device.printf("t31.txt=\"%x\"%c%c%c", mRxMsg[29], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 799 device.printf("t32.txt=\"%x\"%c%c%c", mRxMsg[30], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 800 device.printf("t33.txt=\"%x\"%c%c%c", mRxMsg[31], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 801 device.printf("t34.txt=\"%x\"%c%c%c", mRxMsg[32], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 802 device.printf("t35.txt=\"%x\"%c%c%c", mRxMsg[33], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 803 device.printf("t36.txt=\"%x\"%c%c%c", mRxMsg[34], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 804 device.printf("t37.txt=\"%x\"%c%c%c", mRxMsg[35], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 805 device.printf("t38.txt=\"%x\"%c%c%c", mRxMsg[36], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 806 device.printf("t39.txt=\"%x\"%c%c%c", mRxMsg[37], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 807 device.printf("t40.txt=\"%x\"%c%c%c", mRxMsg[38], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 808 device.printf("t41.txt=\"%x\"%c%c%c", mRxMsg[39], 0xff, 0xff, 0xff);//affiche break sur bouton bt0 -------sy
exarkun 1:2fe82be93e80 809 }
exarkun 0:ea04a1655f3b 810
exarkun 0:ea04a1655f3b 811 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 812 //******************************************************************LES TASKS**************************************************************//
exarkun 0:ea04a1655f3b 813 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 814
exarkun 0:ea04a1655f3b 815 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 816 // TASKS1 //
exarkun 0:ea04a1655f3b 817 ////////////////////////////////////////
exarkun 1:2fe82be93e80 818
exarkun 0:ea04a1655f3b 819 void task1_switch()
exarkun 0:ea04a1655f3b 820 {
exarkun 0:ea04a1655f3b 821
exarkun 0:ea04a1655f3b 822 //lecture valeur codeur et conversion en radians
exarkun 0:ea04a1655f3b 823 position_actuelle=qei.GetPosition();//lecture valeur codeur et affectation a la variable globale
exarkun 0:ea04a1655f3b 824 Tetam=pulsesToRadians(position_actuelle);//conversion valeur impulsionel en radians
exarkun 0:ea04a1655f3b 825
exarkun 0:ea04a1655f3b 826 //Calcul de la nouvelle consigne:
exarkun 0:ea04a1655f3b 827
exarkun 0:ea04a1655f3b 828 //Etape1:derivee filtree
exarkun 0:ea04a1655f3b 829 dTetam=1./(1.+taud*2./dt_vit)*(-dTetam_n1*(1.-taud*2./dt_vit)+2./dt_vit*(Tetam-Tetam_n1));
exarkun 0:ea04a1655f3b 830
exarkun 0:ea04a1655f3b 831 //Etape2:calcul de integ non saturee
exarkun 0:ea04a1655f3b 832 integ=integ_n1+dt_vit/2.*((Tetaco-Tetam)+(Tetaco_n1-Tetam_n1));
exarkun 0:ea04a1655f3b 833
exarkun 0:ea04a1655f3b 834 //Etape3:Calcul de A non saturee
exarkun 0:ea04a1655f3b 835 A=Kv*K_sw/Umax*(-dTetam+Kp*Ki*integ-Kp*Tetam);
exarkun 0:ea04a1655f3b 836
exarkun 0:ea04a1655f3b 837 //Etape 4 et 5 : calcul de integ saturee
exarkun 0:ea04a1655f3b 838 if (A>1)
exarkun 0:ea04a1655f3b 839 {
exarkun 0:ea04a1655f3b 840 integ=1./Kp/Ki*(Umax/Kv/K_sw+dTetam+Kp*Tetam);
exarkun 0:ea04a1655f3b 841 A=1;
exarkun 0:ea04a1655f3b 842 }
exarkun 0:ea04a1655f3b 843 if(A<-1)
exarkun 0:ea04a1655f3b 844 {
exarkun 0:ea04a1655f3b 845 integ=1./Kp/Ki*(-Umax/Kv/K_sw+dTetam+Kp*Tetam);
exarkun 0:ea04a1655f3b 846 A=-1;
exarkun 0:ea04a1655f3b 847 }
exarkun 0:ea04a1655f3b 848
exarkun 0:ea04a1655f3b 849 //Etape 6:affectation du signe de rotation a l'etage de puissance
exarkun 0:ea04a1655f3b 850 if (A>0)
exarkun 0:ea04a1655f3b 851 {
exarkun 0:ea04a1655f3b 852 signe_rot=1;
exarkun 0:ea04a1655f3b 853 sens_rotation_moteur1.write(signe_rot); //affectation du sens de rotation moteur1
exarkun 0:ea04a1655f3b 854 cyclic=A;
exarkun 0:ea04a1655f3b 855 }
exarkun 0:ea04a1655f3b 856 else
exarkun 0:ea04a1655f3b 857 {
exarkun 0:ea04a1655f3b 858 signe_rot=0;
exarkun 0:ea04a1655f3b 859 sens_rotation_moteur1.write(signe_rot); //affectation du sens de rotation moteur1
exarkun 0:ea04a1655f3b 860 cyclic=-A;//peut etre une erreur ici sy??
exarkun 0:ea04a1655f3b 861 }
exarkun 0:ea04a1655f3b 862
exarkun 0:ea04a1655f3b 863 PWM1.write(cyclic);// affectation de la valeur calculé en pwm
exarkun 0:ea04a1655f3b 864
exarkun 0:ea04a1655f3b 865 // enregistrement des valeurs N-1
exarkun 0:ea04a1655f3b 866 position_actuelle_n1=position_actuelle;
exarkun 0:ea04a1655f3b 867 dTetam_n1=dTetam;
exarkun 0:ea04a1655f3b 868 Tetaco_n1=Tetaco;
exarkun 0:ea04a1655f3b 869 Tetam_n1=Tetam;
exarkun 0:ea04a1655f3b 870 integ_n1=integ;
exarkun 0:ea04a1655f3b 871
exarkun 0:ea04a1655f3b 872 //myled1=!myled1;//changement etat de la led1
exarkun 0:ea04a1655f3b 873 }
exarkun 0:ea04a1655f3b 874
exarkun 0:ea04a1655f3b 875 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 876 // TASKS2 //
exarkun 0:ea04a1655f3b 877 ////////////////////////////////////////
exarkun 1:2fe82be93e80 878
exarkun 0:ea04a1655f3b 879 void task2_switch()
exarkun 0:ea04a1655f3b 880 {
exarkun 0:ea04a1655f3b 881 // pc.printf("%f\r\n", Tetaco);//valeur float consigne en radians le renvoyé par usb
exarkun 0:ea04a1655f3b 882 // pc.printf("%i\r\n", position_actuelle);//valeur int du codeur renvoyé par usb
exarkun 0:ea04a1655f3b 883 // pc.printf("%f\r\n", Tetam);//valeur float du codeur en radians renvoyé par usb
exarkun 0:ea04a1655f3b 884 // pc.printf("dTetam : %f\r\n", dTetam);//valeur float dTetam
exarkun 0:ea04a1655f3b 885 // pc.printf("integ : %f\r\n", integ);//valeur float integ
exarkun 0:ea04a1655f3b 886 // pc.printf("%f\r\n", A);//valeur float du codeur en radians le renvoyé par usb
exarkun 0:ea04a1655f3b 887 // pc.printf("%e\r\n", cyclic);//valeur float du codeur en radians le renvoyé par usb
exarkun 0:ea04a1655f3b 888 // pc.printf("\r\n");//retour chario
exarkun 0:ea04a1655f3b 889 // pc.printf("$%d %d %d;", position_actuelle,position_actuelle/2,position_actuelle/10 ); //utiliser avec logicielle serial port ploter
exarkun 0:ea04a1655f3b 890 // pc.printf("$%d ;", position_actuelle); //utiliser avec logicielle serial port ploter
exarkun 0:ea04a1655f3b 891 // pc.printf("%d",position_actuelle); //utiliser avec logicielle serial port ploter
exarkun 0:ea04a1655f3b 892
exarkun 0:ea04a1655f3b 893 // this code is a crude template
exarkun 0:ea04a1655f3b 894 // you will need to edit this
exarkun 0:ea04a1655f3b 895
exarkun 0:ea04a1655f3b 896
exarkun 0:ea04a1655f3b 897 // use this loop if sending integers----------------------------------------------SY
exarkun 0:ea04a1655f3b 898
exarkun 0:ea04a1655f3b 899 // int ppp = position_actuelle;
exarkun 0:ea04a1655f3b 900 // char text[7];
exarkun 0:ea04a1655f3b 901 // snprintf(text, 7, "%d", ppp);
exarkun 0:ea04a1655f3b 902 // pc.printf("\r");
exarkun 0:ea04a1655f3b 903 // pc.printf(text);
exarkun 0:ea04a1655f3b 904
exarkun 0:ea04a1655f3b 905
exarkun 0:ea04a1655f3b 906 // or use this loop if sending floats
exarkun 0:ea04a1655f3b 907
exarkun 0:ea04a1655f3b 908 // float ppp =position_actuelle;
exarkun 0:ea04a1655f3b 909 // char ppp_text[30];
exarkun 0:ea04a1655f3b 910 // dtostrf(ppp, 10, 10, ppp_text);
exarkun 0:ea04a1655f3b 911 // char text[31];
exarkun 0:ea04a1655f3b 912 // snprintf(text, 31, "%s", ppp_text);
exarkun 0:ea04a1655f3b 913 // pc.printf(text);
exarkun 2:e72b06f87c8b 914
exarkun 2:e72b06f87c8b 915 //device.printf("add 1,0,%d%c%c%c", (position_actuelle/1000)+16500, 0xff, 0xff, 0xff);// pour la fonction waveform add id1,chanel0,position actu
exarkun 2:e72b06f87c8b 916 device.printf("add 1,0,%d%c%c%c", (position_actuelle/1000)+16500, 0xff, 0xff, 0xff);
exarkun 0:ea04a1655f3b 917 };
exarkun 0:ea04a1655f3b 918
exarkun 0:ea04a1655f3b 919 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 920 // TASKS3 //
exarkun 0:ea04a1655f3b 921 ////////////////////////////////////////
exarkun 1:2fe82be93e80 922
exarkun 0:ea04a1655f3b 923 void task3_switch()
exarkun 0:ea04a1655f3b 924 {
exarkun 0:ea04a1655f3b 925
exarkun 0:ea04a1655f3b 926 //generation de la trajectoire
exarkun 0:ea04a1655f3b 927 if(start_slope)
exarkun 0:ea04a1655f3b 928 {
exarkun 0:ea04a1655f3b 929 Teta_debut=Tetam;//affectation de la mesure a la variable globale
exarkun 0:ea04a1655f3b 930 Teta_fin=pulsesToRadians(consigne);//affectation de la consigne a la variable globale
exarkun 0:ea04a1655f3b 931 Teta_diff = Teta_fin - Teta_debut;//calcule de la position a parcourir
exarkun 0:ea04a1655f3b 932 delta_Teta=(Teta_diff/slope_time)*5*1e-4;//calcule de la distance ideal parcouru en 500us "regle de trois"!!!
exarkun 0:ea04a1655f3b 933 count_slope = 0;//mise a zero du conteur de pas
exarkun 0:ea04a1655f3b 934 count_max = slope_time/(5*1e-4);//calcule du nombre max de pas
exarkun 0:ea04a1655f3b 935 start_slope=false;
exarkun 0:ea04a1655f3b 936 }
exarkun 0:ea04a1655f3b 937 count_slope++;//incrementation nombre de pas
exarkun 0:ea04a1655f3b 938 if (count_slope<=count_max){Tetaco=Tetaco+delta_Teta;}
exarkun 0:ea04a1655f3b 939
exarkun 0:ea04a1655f3b 940 }
exarkun 0:ea04a1655f3b 941
exarkun 0:ea04a1655f3b 942 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 943 // TASKS4 //
exarkun 0:ea04a1655f3b 944 ////////////////////////////////////////
exarkun 1:2fe82be93e80 945
exarkun 0:ea04a1655f3b 946 void task4_switch()
exarkun 0:ea04a1655f3b 947 {
exarkun 0:ea04a1655f3b 948 //device.printf("$%d;", position_actuelle); //utiliser avec logicielle serial port ploter
exarkun 0:ea04a1655f3b 949 //pc.printf("0x%04x\n", valueFromMaster);
exarkun 0:ea04a1655f3b 950 //pc.printf("%04x", valueFromMaster);
exarkun 2:e72b06f87c8b 951
exarkun 2:e72b06f87c8b 952 //device.printf("add 1,0,%d%c%c%c", (position_actuelle/500), 0xff, 0xff, 0xff);// pour la fonction waveform add id1,chanel0,position actu
exarkun 0:ea04a1655f3b 953
exarkun 2:e72b06f87c8b 954 //pc.printf("%1.3f \n\r",ADCdata);
exarkun 2:e72b06f87c8b 955 pc.printf("add 1,0,%d%c%c%c", (position_actuelle/1000)+16000, 0xff, 0xff, 0xff);
exarkun 2:e72b06f87c8b 956 //pc.printf("n4.val=%d %c%c%c", position_actuelle, 0xff, 0xff, 0xff);
exarkun 2:e72b06f87c8b 957
exarkun 0:ea04a1655f3b 958 }
exarkun 0:ea04a1655f3b 959
exarkun 0:ea04a1655f3b 960 //////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 961 // TASKS5 reception et transfert données sur SPI //
exarkun 0:ea04a1655f3b 962 //////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 963
exarkun 0:ea04a1655f3b 964 void task5_switch()
exarkun 0:ea04a1655f3b 965 {
exarkun 0:ea04a1655f3b 966 //reply=0xAAAA;
exarkun 0:ea04a1655f3b 967 //spi1.reply(reply);
exarkun 0:ea04a1655f3b 968 if (spi1.receive())
exarkun 0:ea04a1655f3b 969 {
exarkun 0:ea04a1655f3b 970 valueFromMaster = spi1.read();
exarkun 0:ea04a1655f3b 971
exarkun 0:ea04a1655f3b 972 Spi_val_RX[x]=valueFromMaster;
exarkun 0:ea04a1655f3b 973 if (x==9){x=0;}
exarkun 0:ea04a1655f3b 974 else {x++;}
exarkun 0:ea04a1655f3b 975
exarkun 0:ea04a1655f3b 976 // pc.printf("%d Something rxvd, and should have replied with %d\n\r", counter++, reply);
exarkun 0:ea04a1655f3b 977 //reply=valueFromMaster;
exarkun 0:ea04a1655f3b 978 //spi1.reply(reply); // Prime SPI with next reply
exarkun 0:ea04a1655f3b 979 //reply--;
exarkun 0:ea04a1655f3b 980
exarkun 0:ea04a1655f3b 981 // pc.printf(" Received value from Master (%d) Next reply will be %d \r\n", valueFromMaster, reply);
exarkun 0:ea04a1655f3b 982 //if (reply==0){reply=65535;}//100
exarkun 0:ea04a1655f3b 983 }
exarkun 0:ea04a1655f3b 984
exarkun 0:ea04a1655f3b 985 // ici code de la tache 5
exarkun 0:ea04a1655f3b 986 }
exarkun 0:ea04a1655f3b 987
exarkun 0:ea04a1655f3b 988 /////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 989 // TASKS6 lecture de l'image courant moteur //
exarkun 0:ea04a1655f3b 990 /////////////////////////////////////////////////////////////////////////
exarkun 2:e72b06f87c8b 991 int z=0;
exarkun 2:e72b06f87c8b 992 float result_conver_AD;
exarkun 1:2fe82be93e80 993
exarkun 0:ea04a1655f3b 994 void task6_switch()
exarkun 2:e72b06f87c8b 995 {
exarkun 2:e72b06f87c8b 996 if (z!=9)
exarkun 2:e72b06f87c8b 997 {
exarkun 2:e72b06f87c8b 998 ADCdata=ADCdata+Ain; //sum 10 samples
exarkun 2:e72b06f87c8b 999 z++ ;
exarkun 2:e72b06f87c8b 1000
exarkun 2:e72b06f87c8b 1001 }
exarkun 0:ea04a1655f3b 1002
exarkun 2:e72b06f87c8b 1003 if (z==9)
exarkun 2:e72b06f87c8b 1004 {
exarkun 2:e72b06f87c8b 1005 ADCdata=ADCdata/10; //divide by 10
exarkun 2:e72b06f87c8b 1006 z=0 ;
exarkun 2:e72b06f87c8b 1007 }
exarkun 2:e72b06f87c8b 1008 //device.printf("n0.val=%d%c%c%c", ADCdata, 0xff, 0xff, 0xff);// affiche la valeur de position sur l afficheur nextion
exarkun 2:e72b06f87c8b 1009 //ADCdata=Ain.read_u16();
exarkun 2:e72b06f87c8b 1010
exarkun 2:e72b06f87c8b 1011 if(ADCdata>=imax)//si l'image du courant egale a 0.5v je coupe le moteur .
exarkun 2:e72b06f87c8b 1012 {
exarkun 2:e72b06f87c8b 1013 c='d';//arret moteur
exarkun 2:e72b06f87c8b 1014 device.printf("g0.txt=\"over i\"%c%c%c", 0xff, 0xff, 0xff);//affiche
exarkun 0:ea04a1655f3b 1015 //attendre que le manipulateur appuis sur le bouton restart a coder .
exarkun 0:ea04a1655f3b 1016 //veriffier que les plaques sont bien en position .
exarkun 2:e72b06f87c8b 1017 //faire une home ou continuer la trajectoire .a voir !!!!
exarkun 2:e72b06f87c8b 1018 }
exarkun 0:ea04a1655f3b 1019 // ici code de la tache 6
exarkun 2:e72b06f87c8b 1020 //-----------------------------------------------------------------attention manque le reset de la valeur ADCdata utilise if ......
exarkun 0:ea04a1655f3b 1021 }
exarkun 0:ea04a1655f3b 1022
exarkun 0:ea04a1655f3b 1023 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 1024 // TASKS7 //
exarkun 0:ea04a1655f3b 1025 ////////////////////////////////////////
exarkun 1:2fe82be93e80 1026
exarkun 2:e72b06f87c8b 1027 //lecture d'un message valide pour traitement afficheur
exarkun 2:e72b06f87c8b 1028
exarkun 1:2fe82be93e80 1029 int ReadSerialMsg(char *Msg)
exarkun 1:2fe82be93e80 1030 {
exarkun 1:2fe82be93e80 1031 if(device.readable())
exarkun 1:2fe82be93e80 1032 {
exarkun 1:2fe82be93e80 1033
exarkun 1:2fe82be93e80 1034 Msg[mRxIdx] = device.getc();
exarkun 1:2fe82be93e80 1035 mRxIdx++;
exarkun 1:2fe82be93e80 1036 if(mRxIdx > 3)
exarkun 1:2fe82be93e80 1037 {
exarkun 1:2fe82be93e80 1038 if ((Msg[mRxIdx-1] == 0xff) && (Msg[mRxIdx-2] == 0xff) && (Msg[mRxIdx-3] == 0xff)) //valid rx message
exarkun 1:2fe82be93e80 1039 {
exarkun 1:2fe82be93e80 1040 mRxIdx=0;
exarkun 1:2fe82be93e80 1041 return 1;
exarkun 1:2fe82be93e80 1042 }
exarkun 1:2fe82be93e80 1043 }
exarkun 1:2fe82be93e80 1044 }
exarkun 1:2fe82be93e80 1045 return 0;
exarkun 1:2fe82be93e80 1046 }
exarkun 1:2fe82be93e80 1047
exarkun 1:2fe82be93e80 1048 void FillButtonCmd(char *mRxMsg, ButtonCommand *cmd)
exarkun 1:2fe82be93e80 1049 {
exarkun 1:2fe82be93e80 1050 cmd->IsNewCommandAvailable = 1;
exarkun 1:2fe82be93e80 1051 cmd->cmdNb = mRxMsg[0];
exarkun 1:2fe82be93e80 1052 cmd->var1 = mRxMsg[1];
exarkun 1:2fe82be93e80 1053 cmd->buttonId = mRxMsg[2];
exarkun 1:2fe82be93e80 1054 cmd->IsButtonPressed = mRxMsg[3];
exarkun 1:2fe82be93e80 1055 }
exarkun 1:2fe82be93e80 1056
exarkun 0:ea04a1655f3b 1057 void task7_switch()
exarkun 0:ea04a1655f3b 1058 {
exarkun 1:2fe82be93e80 1059 if(1 == ReadSerialMsg(mRxMsg))
exarkun 1:2fe82be93e80 1060 {
exarkun 1:2fe82be93e80 1061 Cmd = mRxMsg[0];
exarkun 1:2fe82be93e80 1062 //newCmdAvailable = true;
exarkun 1:2fe82be93e80 1063
exarkun 1:2fe82be93e80 1064 switch(Cmd)
exarkun 1:2fe82be93e80 1065 {
exarkun 1:2fe82be93e80 1066 case PageCmd:
exarkun 1:2fe82be93e80 1067 //resetPageSteps();
exarkun 1:2fe82be93e80 1068 CurrentPageNb = (PageNb)mRxMsg[1];
exarkun 1:2fe82be93e80 1069 break;
exarkun 1:2fe82be93e80 1070
exarkun 1:2fe82be93e80 1071 case ButtonCmd:
exarkun 1:2fe82be93e80 1072 FillButtonCmd(mRxMsg, &buttonCmd);
exarkun 1:2fe82be93e80 1073 break;
exarkun 1:2fe82be93e80 1074 }
exarkun 1:2fe82be93e80 1075 }
exarkun 1:2fe82be93e80 1076 //lectureRSlcd();
exarkun 1:2fe82be93e80 1077 /*
exarkun 1:2fe82be93e80 1078 if(device.readable())
exarkun 0:ea04a1655f3b 1079 {
exarkun 2:e72b06f87c8b 1080
exarkun 0:ea04a1655f3b 1081 charac = device.getc();
exarkun 0:ea04a1655f3b 1082 mRxMsg[mRxIdx] = charac;
exarkun 0:ea04a1655f3b 1083 mRxIdx++;
exarkun 0:ea04a1655f3b 1084 if ((mRxIdx >= 3) && (mRxMsg[mRxIdx-1] == 0xff) && (mRxMsg[mRxIdx-2] == 0xff) && (mRxMsg[mRxIdx-3] == 0xff)) //valid rx message
exarkun 1:2fe82be93e80 1085 {
exarkun 1:2fe82be93e80 1086 myled3=1;
exarkun 1:2fe82be93e80 1087 mRxIdx=0;
exarkun 1:2fe82be93e80 1088 myled3=0;
exarkun 1:2fe82be93e80 1089 if(mRxMsg[0] == 0x67) //Touch coordinate data return
exarkun 1:2fe82be93e80 1090 {
exarkun 1:2fe82be93e80 1091 mTouchX = (mRxMsg[1]*256) + mRxMsg[2];
exarkun 0:ea04a1655f3b 1092 mTouchY = (mRxMsg[3]*256) + mRxMsg[4];
exarkun 0:ea04a1655f3b 1093 if(mRxMsg[5] == 0x01)
exarkun 0:ea04a1655f3b 1094 mTouch = true;
exarkun 0:ea04a1655f3b 1095 else
exarkun 0:ea04a1655f3b 1096 mTouch = false;
exarkun 1:2fe82be93e80 1097 }
exarkun 1:2fe82be93e80 1098 }
exarkun 1:2fe82be93e80 1099
exarkun 0:ea04a1655f3b 1100 //vitesse_actuelle=qei.GetVelocity(); //fonctionne pas ...
exarkun 0:ea04a1655f3b 1101 // ici code de la tache 7
exarkun 1:2fe82be93e80 1102 myled1=0;
exarkun 1:2fe82be93e80 1103 } */
exarkun 0:ea04a1655f3b 1104 }
exarkun 0:ea04a1655f3b 1105
exarkun 0:ea04a1655f3b 1106 ////////////////////////////////////////
exarkun 0:ea04a1655f3b 1107 // TASKS8 //
exarkun 0:ea04a1655f3b 1108 ////////////////////////////////////////
exarkun 2:e72b06f87c8b 1109 bool page_detect_ok;
exarkun 0:ea04a1655f3b 1110
exarkun 1:2fe82be93e80 1111 void task8_switch()//detection code page
exarkun 0:ea04a1655f3b 1112 {
exarkun 2:e72b06f87c8b 1113 if(page_detect_ok!=1)
exarkun 2:e72b06f87c8b 1114 {
exarkun 2:e72b06f87c8b 1115 if((mRxMsg[0] == 0x66))
exarkun 2:e72b06f87c8b 1116 {
exarkun 2:e72b06f87c8b 1117 page_detect_ok!=1;
exarkun 2:e72b06f87c8b 1118 switch ( mRxMsg[1])
exarkun 2:e72b06f87c8b 1119 {
exarkun 2:e72b06f87c8b 1120 case 0x00:
exarkun 2:e72b06f87c8b 1121 page0();//ici la page0 es traité ----------- code de la page : 66 00 ff ff ff
exarkun 2:e72b06f87c8b 1122 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 2:e72b06f87c8b 1123 break;
exarkun 0:ea04a1655f3b 1124
exarkun 2:e72b06f87c8b 1125 case 0x01:
exarkun 2:e72b06f87c8b 1126 page1();//ici la page0 es traité ----------- code de la page : 66 01 ff ff ff
exarkun 2:e72b06f87c8b 1127 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 2:e72b06f87c8b 1128 break;
exarkun 2:e72b06f87c8b 1129
exarkun 2:e72b06f87c8b 1130 case 0x02:
exarkun 2:e72b06f87c8b 1131 page2();//ici la page0 es traité ----------- code de la page : 66 02 ff ff ff
exarkun 2:e72b06f87c8b 1132 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 2:e72b06f87c8b 1133 break;
exarkun 0:ea04a1655f3b 1134
exarkun 2:e72b06f87c8b 1135 case 0x03:
exarkun 2:e72b06f87c8b 1136 page3();//ici la page0 es traité ----------- code de la page : 66 03 ff ff ff
exarkun 2:e72b06f87c8b 1137 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 2:e72b06f87c8b 1138 break;
exarkun 0:ea04a1655f3b 1139
exarkun 2:e72b06f87c8b 1140 case 0x04:
exarkun 2:e72b06f87c8b 1141 page4();//ici la page0 es traité ----------- code de la page : 66 04 ff ff ff
exarkun 2:e72b06f87c8b 1142 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 2:e72b06f87c8b 1143 break;
exarkun 0:ea04a1655f3b 1144
exarkun 2:e72b06f87c8b 1145 case 0x05:
exarkun 2:e72b06f87c8b 1146 page5();//ici la page0 es traité ----------- code de la page : 66 05 ff ff ff
exarkun 2:e72b06f87c8b 1147 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 2:e72b06f87c8b 1148 break;
exarkun 2:e72b06f87c8b 1149
exarkun 2:e72b06f87c8b 1150 case 0x06:
exarkun 2:e72b06f87c8b 1151 page6();//ici la page6 es traité ----------- code de la page : 66 06 ff ff ff
exarkun 2:e72b06f87c8b 1152 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 2:e72b06f87c8b 1153 break;
exarkun 0:ea04a1655f3b 1154
exarkun 2:e72b06f87c8b 1155 case 0x07:
exarkun 2:e72b06f87c8b 1156 page7();//ici la page7 es traité ----------- code de la page : 66 07 ff ff ff
exarkun 2:e72b06f87c8b 1157 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 2:e72b06f87c8b 1158 //memset(mRxMsg, 0, 5);
exarkun 2:e72b06f87c8b 1159 break;
exarkun 2:e72b06f87c8b 1160
exarkun 2:e72b06f87c8b 1161 }
exarkun 2:e72b06f87c8b 1162 }
exarkun 2:e72b06f87c8b 1163 }
exarkun 2:e72b06f87c8b 1164 // ici code de la tache 8
exarkun 2:e72b06f87c8b 1165 }
exarkun 1:2fe82be93e80 1166
exarkun 2:e72b06f87c8b 1167 //fonction pour faire la home
exarkun 2:e72b06f87c8b 1168 void do_the_Home()
exarkun 2:e72b06f87c8b 1169 {
exarkun 2:e72b06f87c8b 1170 myled1=1;
exarkun 2:e72b06f87c8b 1171 c='f'; //mouvement sortie du capteur
exarkun 2:e72b06f87c8b 1172 }
exarkun 2:e72b06f87c8b 1173
exarkun 2:e72b06f87c8b 1174 void do_the_Home1()
exarkun 2:e72b06f87c8b 1175 {
exarkun 2:e72b06f87c8b 1176 position_sortie_capteur_de_home=(LPC_QEI->QEIPOS);
exarkun 2:e72b06f87c8b 1177 myled1=0;
exarkun 2:e72b06f87c8b 1178 c='d';//arret moteur en 1ms
exarkun 2:e72b06f87c8b 1179 position_home =position_initial-position_sortie_capteur_de_home;
exarkun 2:e72b06f87c8b 1180 home_done_tag=1;
exarkun 2:e72b06f87c8b 1181 device.printf("g0.txt=\"Home done\"%c%c%c", 0xff, 0xff, 0xff);//affiche
exarkun 0:ea04a1655f3b 1182 }
exarkun 0:ea04a1655f3b 1183
exarkun 1:2fe82be93e80 1184 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1185 // PROGRAMME PRINCIPAL //
exarkun 1:2fe82be93e80 1186 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1187 int motorStep = 0;
exarkun 1:2fe82be93e80 1188 int position_a_cmd_darret = 0;
exarkun 0:ea04a1655f3b 1189
exarkun 0:ea04a1655f3b 1190 int main()
exarkun 0:ea04a1655f3b 1191 {
exarkun 1:2fe82be93e80 1192 // int cycles;
exarkun 0:ea04a1655f3b 1193 //NVIC_SetPriority(EINT3_IRQn, 252);//set interupt to highest priority 0.
exarkun 0:ea04a1655f3b 1194 //NVIC_SetPriority(TIMER1_IRQn, 253);// set mbed tickers to lower priority than other things
exarkun 0:ea04a1655f3b 1195 //NVIC_SetPriority(TIMER2_IRQn, 254);// set mbed tickers to lower priority than other things
exarkun 0:ea04a1655f3b 1196 //NVIC_SetPriority(TIMER3_IRQn, 255);// set mbed tickers to lower priority than other things
exarkun 0:ea04a1655f3b 1197 //NVIC_set_all_irq_priorities(0);
exarkun 0:ea04a1655f3b 1198
exarkun 0:ea04a1655f3b 1199 qei.SetDigiFilter(480UL);//filtre
exarkun 0:ea04a1655f3b 1200 qei.SetMaxPosition(0xFFFFFFFF);//position max 4294967295 pulses
exarkun 0:ea04a1655f3b 1201
exarkun 0:ea04a1655f3b 1202 //initialisation de la com rs232
exarkun 0:ea04a1655f3b 1203 device.baud(9600);//rs232 28800 baud
exarkun 2:e72b06f87c8b 1204 //device.printf("serial rs232 ok \n");
exarkun 0:ea04a1655f3b 1205
exarkun 0:ea04a1655f3b 1206 //calculs de tau ,Kv,Kp
exarkun 0:ea04a1655f3b 1207 tau=(J*R)/K;
exarkun 0:ea04a1655f3b 1208 Kv=r1*r2*tau*Ki-1.;
exarkun 0:ea04a1655f3b 1209 if(Kv<0){Kv = -Kv;}
exarkun 0:ea04a1655f3b 1210 Kp=r1*Ki*(1.+Kv)/Kv;
exarkun 0:ea04a1655f3b 1211
exarkun 0:ea04a1655f3b 1212 //initialisation moteur
exarkun 0:ea04a1655f3b 1213 PWM1.period(0.00005);// initialisation du rapport cyclique fixe la période à 50us----f=20Khz
exarkun 0:ea04a1655f3b 1214 frein_moteur1.write(0);//affectation de la valeur du frein moteur1
exarkun 0:ea04a1655f3b 1215 sens_rotation_moteur1.write(0); //affectation du sens de rotation moteur1 non utiliser puisque c'est la tache1 qui le fait non pas la generation de trajectoire
exarkun 0:ea04a1655f3b 1216
exarkun 0:ea04a1655f3b 1217 //initialisation du spi
exarkun 0:ea04a1655f3b 1218 spi1.format(16,3); // Setup: bit data, high steady state clock, 2nd edge capture
exarkun 0:ea04a1655f3b 1219 spi1.frequency(1000000); // 1MHz
exarkun 2:e72b06f87c8b 1220
exarkun 0:ea04a1655f3b 1221 //lancement des tasks
exarkun 0:ea04a1655f3b 1222 time_up1.attach(&task1_switch, 0.0005);//"calcule de l'asservissement" initialisation du ticker a 2Khz "500us".
exarkun 1:2fe82be93e80 1223 time_up2.attach(&task2_switch, 0.034);//"retour d'information position.
exarkun 0:ea04a1655f3b 1224 time_up3.attach(&task3_switch, 0.0005);//"generation trajectoire" initialisation du ticker a 2khz "500us".
exarkun 2:e72b06f87c8b 1225 time_up4.attach(&task4_switch, 0.034);//"retour d'information position par rs232"initialisation du ticker a 100hz "10ms".
exarkun 0:ea04a1655f3b 1226 //time_up5.attach(&task5_switch, 0.0001);//"lecture et ecriture DATA SPI1 initialisation du ticker 10khz.
exarkun 0:ea04a1655f3b 1227
exarkun 2:e72b06f87c8b 1228 time_up6.attach(&task6_switch, 0.034);//retour d'information courant.
exarkun 1:2fe82be93e80 1229 time_up7.attach(&task7_switch, 0.00005);//lecture de la com rs tous les 100us.
exarkun 1:2fe82be93e80 1230 // time_up8.attach(&task8_switch, 0.5);//detection numero de page tous les 100 ms.
exarkun 1:2fe82be93e80 1231
exarkun 2:e72b06f87c8b 1232 input1.fall(&do_the_Home);//declaration d une interuption lié a input1 pour faire la home
exarkun 2:e72b06f87c8b 1233 input1.rise(&do_the_Home1);//declaration d une interuption lié a input1 pour faire la home
exarkun 2:e72b06f87c8b 1234
exarkun 1:2fe82be93e80 1235 device.printf("sendme");
exarkun 1:2fe82be93e80 1236 count_ticks=0;
exarkun 1:2fe82be93e80 1237 c='0';
exarkun 2:e72b06f87c8b 1238
exarkun 2:e72b06f87c8b 1239 home_done_tag=0;
exarkun 2:e72b06f87c8b 1240 device.printf("g0.txt=\"home?? \"%c%c%c", 0xff, 0xff, 0xff);//affiche
exarkun 2:e72b06f87c8b 1241 wait(2);
exarkun 1:2fe82be93e80 1242 while(1)
exarkun 1:2fe82be93e80 1243 {
exarkun 2:e72b06f87c8b 1244 myled1 = 0;
exarkun 0:ea04a1655f3b 1245
exarkun 1:2fe82be93e80 1246 if(buttonCmd.IsNewCommandAvailable == 1)//si y as eu un bouton appuyé et que nous somme bien en la page n°7
exarkun 1:2fe82be93e80 1247
exarkun 1:2fe82be93e80 1248 {
exarkun 1:2fe82be93e80 1249 motorStep = 0;
exarkun 2:e72b06f87c8b 1250
exarkun 1:2fe82be93e80 1251 switch(buttonCmd.cmdNb)
exarkun 1:2fe82be93e80 1252 {
exarkun 1:2fe82be93e80 1253 case PageCmd:
exarkun 1:2fe82be93e80 1254 switch ( buttonCmd.var1)
exarkun 1:2fe82be93e80 1255 {
exarkun 1:2fe82be93e80 1256 case 0x00:
exarkun 1:2fe82be93e80 1257 page0();//ici la page0 es traité ----------- code de la page : 66 00 ff ff ff
exarkun 1:2fe82be93e80 1258 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 1:2fe82be93e80 1259 break;
exarkun 1:2fe82be93e80 1260
exarkun 1:2fe82be93e80 1261 case 0x01:
exarkun 1:2fe82be93e80 1262 page1();//ici la page0 es traité ----------- code de la page : 66 01 ff ff ff
exarkun 1:2fe82be93e80 1263 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 1:2fe82be93e80 1264 break;
exarkun 1:2fe82be93e80 1265
exarkun 1:2fe82be93e80 1266 case 0x02:
exarkun 1:2fe82be93e80 1267 page2();//ici la page0 es traité ----------- code de la page : 66 02 ff ff ff
exarkun 1:2fe82be93e80 1268 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 1:2fe82be93e80 1269 break;
exarkun 1:2fe82be93e80 1270
exarkun 1:2fe82be93e80 1271 case 0x03:
exarkun 1:2fe82be93e80 1272 page3();//ici la page0 es traité ----------- code de la page : 66 03 ff ff ff
exarkun 1:2fe82be93e80 1273 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 1:2fe82be93e80 1274 break;
exarkun 1:2fe82be93e80 1275
exarkun 1:2fe82be93e80 1276 case 0x04:
exarkun 1:2fe82be93e80 1277 page4();//ici la page0 es traité ----------- code de la page : 66 04 ff ff ff
exarkun 1:2fe82be93e80 1278 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 1:2fe82be93e80 1279 break;
exarkun 1:2fe82be93e80 1280
exarkun 1:2fe82be93e80 1281 case 0x05:
exarkun 1:2fe82be93e80 1282 page5();//ici la page0 es traité ----------- code de la page : 66 05 ff ff ff
exarkun 1:2fe82be93e80 1283 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 1:2fe82be93e80 1284 break;
exarkun 1:2fe82be93e80 1285
exarkun 1:2fe82be93e80 1286 case 0x06:
exarkun 1:2fe82be93e80 1287 page6();//ici la page6 es traité ----------- code de la page : 66 06 ff ff ff
exarkun 1:2fe82be93e80 1288 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 1:2fe82be93e80 1289 break;
exarkun 1:2fe82be93e80 1290
exarkun 1:2fe82be93e80 1291 case 0x07:
exarkun 1:2fe82be93e80 1292 page7();//ici la page7 es traité ----------- code de la page : 66 07 ff ff ff
exarkun 1:2fe82be93e80 1293 mRxMsg[0] = 0x00;mRxMsg[1] = 0x00;mRxMsg[2] = 0x00;mRxMsg[3] = 0x00;mRxMsg[4] = 0x00;
exarkun 1:2fe82be93e80 1294 //memset(mRxMsg, 0, 5);
exarkun 1:2fe82be93e80 1295 break;
exarkun 1:2fe82be93e80 1296
exarkun 1:2fe82be93e80 1297 }
exarkun 1:2fe82be93e80 1298 break;
exarkun 1:2fe82be93e80 1299 }
exarkun 1:2fe82be93e80 1300 }
exarkun 0:ea04a1655f3b 1301
exarkun 1:2fe82be93e80 1302 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1303 ////////////////////////////////////////////////// page0 ////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1304 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1305
exarkun 1:2fe82be93e80 1306 if((buttonCmd.IsNewCommandAvailable == 1)&&(mRxMsg[1]==0x00))//si y as eu un bouton appuyé et que nous somme bien en la page n°0
exarkun 1:2fe82be93e80 1307 {
exarkun 1:2fe82be93e80 1308 motorStep = 0;
exarkun 2:e72b06f87c8b 1309
exarkun 1:2fe82be93e80 1310 switch(buttonCmd.buttonId)
exarkun 1:2fe82be93e80 1311 {
exarkun 1:2fe82be93e80 1312 case 0x02: // boutn 'A' de la page 0
exarkun 2:e72b06f87c8b 1313
exarkun 1:2fe82be93e80 1314 c='a';
exarkun 1:2fe82be93e80 1315 buttonCmd.IsNewCommandAvailable = 0;
exarkun 1:2fe82be93e80 1316 break;
exarkun 1:2fe82be93e80 1317
exarkun 1:2fe82be93e80 1318 case 0x01: // boutn 'B' de la page 0
exarkun 2:e72b06f87c8b 1319
exarkun 1:2fe82be93e80 1320 c='b';
exarkun 1:2fe82be93e80 1321 buttonCmd.IsNewCommandAvailable = 0;
exarkun 1:2fe82be93e80 1322 break;
exarkun 1:2fe82be93e80 1323
exarkun 1:2fe82be93e80 1324 case 0x03: // boutn 'R' de la page 0
exarkun 2:e72b06f87c8b 1325
exarkun 1:2fe82be93e80 1326 c='c';
exarkun 1:2fe82be93e80 1327 buttonCmd.IsNewCommandAvailable = 0;
exarkun 1:2fe82be93e80 1328 break;
exarkun 1:2fe82be93e80 1329
exarkun 1:2fe82be93e80 1330 case 0x04: // boutn 'L' de la page 0
exarkun 2:e72b06f87c8b 1331
exarkun 1:2fe82be93e80 1332 c='d';
exarkun 1:2fe82be93e80 1333 buttonCmd.IsNewCommandAvailable = 0;
exarkun 1:2fe82be93e80 1334 break;
exarkun 1:2fe82be93e80 1335
exarkun 1:2fe82be93e80 1336 case 0x05: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1337
exarkun 1:2fe82be93e80 1338 c='d';
exarkun 1:2fe82be93e80 1339 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1340 break;
exarkun 2:e72b06f87c8b 1341
exarkun 2:e72b06f87c8b 1342 case 32: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1343
exarkun 2:e72b06f87c8b 1344 page_detect_ok=0 ;
exarkun 2:e72b06f87c8b 1345 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1346 break;
exarkun 2:e72b06f87c8b 1347
exarkun 2:e72b06f87c8b 1348 case 7: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1349
exarkun 2:e72b06f87c8b 1350 page_detect_ok=0 ;
exarkun 2:e72b06f87c8b 1351 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1352 break;
exarkun 2:e72b06f87c8b 1353
exarkun 2:e72b06f87c8b 1354 case 13: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1355
exarkun 2:e72b06f87c8b 1356 page_detect_ok=0 ;
exarkun 2:e72b06f87c8b 1357 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1358 break;
exarkun 2:e72b06f87c8b 1359
exarkun 2:e72b06f87c8b 1360 case 14: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1361
exarkun 2:e72b06f87c8b 1362 page_detect_ok=0 ;
exarkun 2:e72b06f87c8b 1363 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1364 break;
exarkun 2:e72b06f87c8b 1365
exarkun 2:e72b06f87c8b 1366 case 15: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1367
exarkun 2:e72b06f87c8b 1368 page_detect_ok=0 ;
exarkun 2:e72b06f87c8b 1369 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1370 break;
exarkun 2:e72b06f87c8b 1371
exarkun 2:e72b06f87c8b 1372 case 35: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1373
exarkun 2:e72b06f87c8b 1374 page_detect_ok=0 ;
exarkun 2:e72b06f87c8b 1375 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1376 break;
exarkun 2:e72b06f87c8b 1377
exarkun 2:e72b06f87c8b 1378 case 11: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1379
exarkun 2:e72b06f87c8b 1380 page_detect_ok=0 ;
exarkun 2:e72b06f87c8b 1381 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1382 break;
exarkun 2:e72b06f87c8b 1383
exarkun 2:e72b06f87c8b 1384 case 8: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1385
exarkun 2:e72b06f87c8b 1386 page_detect_ok=0 ;
exarkun 2:e72b06f87c8b 1387 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1388 break;
exarkun 2:e72b06f87c8b 1389
exarkun 2:e72b06f87c8b 1390 case 10: // boutn 'R2' de la page 0
exarkun 2:e72b06f87c8b 1391
exarkun 2:e72b06f87c8b 1392 page_detect_ok=0 ;
exarkun 2:e72b06f87c8b 1393 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1394 break;
exarkun 2:e72b06f87c8b 1395
exarkun 1:2fe82be93e80 1396 }
exarkun 1:2fe82be93e80 1397 }
exarkun 1:2fe82be93e80 1398
exarkun 1:2fe82be93e80 1399 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1400 ////////////////////////////////////////////////// page1 ////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1401 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1402
exarkun 1:2fe82be93e80 1403 if((buttonCmd.IsNewCommandAvailable == 1)&&(mRxMsg[1]==0x01))//si y as eu un bouton appuyé et que nous somme bien en la page n°1
exarkun 0:ea04a1655f3b 1404 {
exarkun 1:2fe82be93e80 1405 //page1();
exarkun 1:2fe82be93e80 1406 }
exarkun 1:2fe82be93e80 1407
exarkun 1:2fe82be93e80 1408 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1409 ////////////////////////////////////////////////// page2 ////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1410 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1411
exarkun 1:2fe82be93e80 1412 if((buttonCmd.IsNewCommandAvailable == 1)&&(mRxMsg[1]==0x02))//si y as eu un bouton appuyé et que nous somme bien en la page n°2
exarkun 1:2fe82be93e80 1413 {
exarkun 1:2fe82be93e80 1414 //page2();
exarkun 1:2fe82be93e80 1415 }
exarkun 1:2fe82be93e80 1416
exarkun 1:2fe82be93e80 1417 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1418 ////////////////////////////////////////////////// page3 ////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1419 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1420
exarkun 1:2fe82be93e80 1421 if((buttonCmd.IsNewCommandAvailable == 1)&&(mRxMsg[1]==0x03))//si y as eu un bouton appuyé et que nous somme bien en la page n°3
exarkun 1:2fe82be93e80 1422 {
exarkun 1:2fe82be93e80 1423 //page3();
exarkun 1:2fe82be93e80 1424 }
exarkun 1:2fe82be93e80 1425
exarkun 1:2fe82be93e80 1426 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1427 ////////////////////////////////////////////////// page4 ////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1428 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1429
exarkun 1:2fe82be93e80 1430 if((buttonCmd.IsNewCommandAvailable == 1)&&(mRxMsg[1]==0x04))//si y as eu un bouton appuyé et que nous somme bien en la page n°4
exarkun 1:2fe82be93e80 1431 {
exarkun 1:2fe82be93e80 1432 //page4();
exarkun 1:2fe82be93e80 1433 }
exarkun 1:2fe82be93e80 1434
exarkun 1:2fe82be93e80 1435 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1436 ////////////////////////////////////////////////// page5 ////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1437 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1438
exarkun 1:2fe82be93e80 1439 if((buttonCmd.IsNewCommandAvailable == 1)&&(mRxMsg[1]==0x05))//si y as eu un bouton appuyé et que nous somme bien en la page n°5
exarkun 1:2fe82be93e80 1440 {
exarkun 2:e72b06f87c8b 1441 motorStep = 0;
exarkun 2:e72b06f87c8b 1442
exarkun 2:e72b06f87c8b 1443 switch(buttonCmd.buttonId)
exarkun 2:e72b06f87c8b 1444 {
exarkun 2:e72b06f87c8b 1445 case 0x04: // boutn 'A' de la page 7
exarkun 2:e72b06f87c8b 1446
exarkun 2:e72b06f87c8b 1447 c='a';
exarkun 2:e72b06f87c8b 1448 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1449 break;
exarkun 2:e72b06f87c8b 1450
exarkun 2:e72b06f87c8b 1451 case 0x05: // boutn 'B' de la page 7
exarkun 2:e72b06f87c8b 1452
exarkun 2:e72b06f87c8b 1453 c='b';
exarkun 2:e72b06f87c8b 1454 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1455 break;
exarkun 2:e72b06f87c8b 1456
exarkun 2:e72b06f87c8b 1457 case 0x06: // boutn 'C' de la page 7
exarkun 2:e72b06f87c8b 1458
exarkun 2:e72b06f87c8b 1459 c='c';
exarkun 2:e72b06f87c8b 1460 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1461 break;
exarkun 2:e72b06f87c8b 1462
exarkun 2:e72b06f87c8b 1463 case 0x07: // boutn 'D' de la page 7
exarkun 2:e72b06f87c8b 1464
exarkun 2:e72b06f87c8b 1465 c='d';
exarkun 2:e72b06f87c8b 1466 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1467 break;
exarkun 2:e72b06f87c8b 1468
exarkun 2:e72b06f87c8b 1469 case 14: // boutn 'BTO' de la page 7 bouton mouvement home
exarkun 2:e72b06f87c8b 1470
exarkun 2:e72b06f87c8b 1471 c='h';
exarkun 2:e72b06f87c8b 1472 buttonCmd.IsNewCommandAvailable = 0;
exarkun 2:e72b06f87c8b 1473 break;
exarkun 2:e72b06f87c8b 1474
exarkun 2:e72b06f87c8b 1475 }
exarkun 1:2fe82be93e80 1476 }
exarkun 1:2fe82be93e80 1477
exarkun 1:2fe82be93e80 1478 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1479 ////////////////////////////////////////////////// page6 ////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1480 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 0:ea04a1655f3b 1481
exarkun 1:2fe82be93e80 1482 if((buttonCmd.IsNewCommandAvailable == 1)&&(mRxMsg[1]==0x06))//si y as eu un bouton appuyé et que nous somme bien en la page n°6
exarkun 1:2fe82be93e80 1483 {
exarkun 1:2fe82be93e80 1484 //page6();
exarkun 1:2fe82be93e80 1485 }
exarkun 2:e72b06f87c8b 1486
exarkun 1:2fe82be93e80 1487 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1488 ////////////////////////////////////////////////// page7 ////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1489 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1490
exarkun 1:2fe82be93e80 1491 if((buttonCmd.IsNewCommandAvailable == 1)&&(mRxMsg[1]==0x07))//si y as eu un bouton appuyé et que nous somme bien en la page n°7
exarkun 1:2fe82be93e80 1492 {
exarkun 1:2fe82be93e80 1493 motorStep = 0;
exarkun 2:e72b06f87c8b 1494
exarkun 1:2fe82be93e80 1495 switch(buttonCmd.buttonId)
exarkun 0:ea04a1655f3b 1496 {
exarkun 1:2fe82be93e80 1497 case 0x2f: // boutn 'A' de la page 7
exarkun 2:e72b06f87c8b 1498
exarkun 1:2fe82be93e80 1499 c='a';
exarkun 1:2fe82be93e80 1500 buttonCmd.IsNewCommandAvailable = 0;
exarkun 1:2fe82be93e80 1501 break;
exarkun 0:ea04a1655f3b 1502
exarkun 1:2fe82be93e80 1503 case 0x30: // boutn 'B' de la page 7
exarkun 2:e72b06f87c8b 1504
exarkun 1:2fe82be93e80 1505 c='b';
exarkun 1:2fe82be93e80 1506 buttonCmd.IsNewCommandAvailable = 0;
exarkun 1:2fe82be93e80 1507 break;
exarkun 1:2fe82be93e80 1508
exarkun 1:2fe82be93e80 1509 case 0x31: // boutn 'C' de la page 7
exarkun 2:e72b06f87c8b 1510
exarkun 1:2fe82be93e80 1511 c='c';
exarkun 1:2fe82be93e80 1512 buttonCmd.IsNewCommandAvailable = 0;
exarkun 1:2fe82be93e80 1513 break;
exarkun 1:2fe82be93e80 1514
exarkun 1:2fe82be93e80 1515 case 0x32: // boutn 'D' de la page 7
exarkun 2:e72b06f87c8b 1516
exarkun 1:2fe82be93e80 1517 c='d';
exarkun 1:2fe82be93e80 1518 buttonCmd.IsNewCommandAvailable = 0;
exarkun 1:2fe82be93e80 1519 break;
exarkun 1:2fe82be93e80 1520
exarkun 1:2fe82be93e80 1521 case 0x01: // boutn 'D' de la page 7
exarkun 2:e72b06f87c8b 1522
exarkun 1:2fe82be93e80 1523 c='d';
exarkun 1:2fe82be93e80 1524 buttonCmd.IsNewCommandAvailable = 0;
exarkun 1:2fe82be93e80 1525 break;
exarkun 1:2fe82be93e80 1526
exarkun 1:2fe82be93e80 1527 }
exarkun 1:2fe82be93e80 1528 }
exarkun 1:2fe82be93e80 1529 //c=valueFromMaster;//valeur par la liaison spi par le master
exarkun 1:2fe82be93e80 1530 //device.scanf("%c",&c);//capture du caract ascii
exarkun 1:2fe82be93e80 1531
exarkun 2:e72b06f87c8b 1532 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 2:e72b06f87c8b 1533 ///////////////////////////////////////////// differants mouvement ///////////////////////////////////////////////////
exarkun 2:e72b06f87c8b 1534 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 2:e72b06f87c8b 1535
exarkun 2:e72b06f87c8b 1536
exarkun 1:2fe82be93e80 1537 (LPC_QEI->QEIPOS)=0;
exarkun 1:2fe82be93e80 1538 switch(c)//commande moteur
exarkun 1:2fe82be93e80 1539 {
exarkun 0:ea04a1655f3b 1540 case 'a':
exarkun 2:e72b06f87c8b 1541 if(home_done_tag==1)
exarkun 2:e72b06f87c8b 1542 {
exarkun 2:e72b06f87c8b 1543 //qei.Reset(0);
exarkun 2:e72b06f87c8b 1544 switch(motorStep)
exarkun 2:e72b06f87c8b 1545 {
exarkun 2:e72b06f87c8b 1546 case 0:
exarkun 2:e72b06f87c8b 1547 consigne=70000-position_home ;
exarkun 2:e72b06f87c8b 1548 slope_time=0.25;//t =s
exarkun 2:e72b06f87c8b 1549 start_slope=true;
exarkun 2:e72b06f87c8b 1550 {
exarkun 2:e72b06f87c8b 1551 motorStep = 1;
exarkun 2:e72b06f87c8b 1552 }
exarkun 2:e72b06f87c8b 1553 break;
exarkun 2:e72b06f87c8b 1554
exarkun 2:e72b06f87c8b 1555 case 1:
exarkun 2:e72b06f87c8b 1556 if(true == Wait2(0, 550))//ms
exarkun 2:e72b06f87c8b 1557 {
exarkun 2:e72b06f87c8b 1558 motorStep = 2;
exarkun 2:e72b06f87c8b 1559 }
exarkun 2:e72b06f87c8b 1560 break;
exarkun 2:e72b06f87c8b 1561
exarkun 2:e72b06f87c8b 1562 case 2:
exarkun 2:e72b06f87c8b 1563 consigne=132000-position_home ;
exarkun 2:e72b06f87c8b 1564 slope_time=2.5;//s
exarkun 2:e72b06f87c8b 1565 start_slope=true;
exarkun 2:e72b06f87c8b 1566 {
exarkun 2:e72b06f87c8b 1567 motorStep = 3;
exarkun 2:e72b06f87c8b 1568 }
exarkun 2:e72b06f87c8b 1569 break;
exarkun 2:e72b06f87c8b 1570
exarkun 2:e72b06f87c8b 1571 case 3:
exarkun 2:e72b06f87c8b 1572 if(true == Wait2(0, 3000))//ms
exarkun 2:e72b06f87c8b 1573 {
exarkun 2:e72b06f87c8b 1574 motorStep = 4;
exarkun 2:e72b06f87c8b 1575 }
exarkun 2:e72b06f87c8b 1576 break;
exarkun 2:e72b06f87c8b 1577
exarkun 2:e72b06f87c8b 1578 case 4:
exarkun 2:e72b06f87c8b 1579 consigne=35000-position_home ;
exarkun 2:e72b06f87c8b 1580 slope_time=2.5;//s
exarkun 2:e72b06f87c8b 1581 start_slope=true;
exarkun 2:e72b06f87c8b 1582 {
exarkun 2:e72b06f87c8b 1583 motorStep = 5;
exarkun 2:e72b06f87c8b 1584 }
exarkun 2:e72b06f87c8b 1585 break;
exarkun 2:e72b06f87c8b 1586
exarkun 2:e72b06f87c8b 1587 case 5:
exarkun 2:e72b06f87c8b 1588 if(true == Wait2(0, 3000))//ms
exarkun 2:e72b06f87c8b 1589 {
exarkun 2:e72b06f87c8b 1590 motorStep = 6;
exarkun 2:e72b06f87c8b 1591 }
exarkun 2:e72b06f87c8b 1592 break;
exarkun 2:e72b06f87c8b 1593
exarkun 2:e72b06f87c8b 1594 case 6:
exarkun 2:e72b06f87c8b 1595 consigne=0-position_home ;
exarkun 2:e72b06f87c8b 1596 slope_time=2.5;//s
exarkun 2:e72b06f87c8b 1597 start_slope=true;
exarkun 2:e72b06f87c8b 1598 {
exarkun 2:e72b06f87c8b 1599 motorStep = 7;
exarkun 2:e72b06f87c8b 1600 }
exarkun 2:e72b06f87c8b 1601 break;
exarkun 2:e72b06f87c8b 1602
exarkun 2:e72b06f87c8b 1603 case 7:
exarkun 2:e72b06f87c8b 1604 if(true == Wait2(0, 3000))//ms
exarkun 2:e72b06f87c8b 1605 {
exarkun 2:e72b06f87c8b 1606 motorStep = 0;
exarkun 2:e72b06f87c8b 1607 }
exarkun 2:e72b06f87c8b 1608 break;
exarkun 2:e72b06f87c8b 1609 }
exarkun 2:e72b06f87c8b 1610 }
exarkun 2:e72b06f87c8b 1611 break;
exarkun 2:e72b06f87c8b 1612
exarkun 2:e72b06f87c8b 1613 case 'b':
exarkun 2:e72b06f87c8b 1614 if(home_done_tag==1)
exarkun 2:e72b06f87c8b 1615 {
exarkun 2:e72b06f87c8b 1616 //qei.Reset(0);
exarkun 2:e72b06f87c8b 1617 switch(motorStep)
exarkun 2:e72b06f87c8b 1618 {
exarkun 2:e72b06f87c8b 1619 case 0:
exarkun 2:e72b06f87c8b 1620 consigne=0-position_home ; //1 tour
exarkun 2:e72b06f87c8b 1621 slope_time=3;//s
exarkun 2:e72b06f87c8b 1622 start_slope=true;
exarkun 2:e72b06f87c8b 1623 {
exarkun 2:e72b06f87c8b 1624 motorStep = 1;
exarkun 2:e72b06f87c8b 1625 }
exarkun 2:e72b06f87c8b 1626 break;
exarkun 2:e72b06f87c8b 1627
exarkun 2:e72b06f87c8b 1628 case 1:
exarkun 2:e72b06f87c8b 1629 if(true == Wait2(0, 3500))//ms
exarkun 2:e72b06f87c8b 1630 {
exarkun 2:e72b06f87c8b 1631 motorStep = 2;
exarkun 2:e72b06f87c8b 1632 }
exarkun 2:e72b06f87c8b 1633 break;
exarkun 2:e72b06f87c8b 1634
exarkun 2:e72b06f87c8b 1635 case 2:
exarkun 2:e72b06f87c8b 1636 consigne=10000-position_home ;
exarkun 2:e72b06f87c8b 1637 slope_time=0.25;//t=s
exarkun 2:e72b06f87c8b 1638 start_slope=true;
exarkun 2:e72b06f87c8b 1639 {
exarkun 2:e72b06f87c8b 1640 motorStep = 3;
exarkun 2:e72b06f87c8b 1641 }
exarkun 2:e72b06f87c8b 1642 break;
exarkun 2:e72b06f87c8b 1643
exarkun 2:e72b06f87c8b 1644 case 3:
exarkun 2:e72b06f87c8b 1645 if(true == Wait2(0, 400))//ms
exarkun 2:e72b06f87c8b 1646 {
exarkun 2:e72b06f87c8b 1647 motorStep = 4;
exarkun 2:e72b06f87c8b 1648 }
exarkun 2:e72b06f87c8b 1649 break;
exarkun 2:e72b06f87c8b 1650
exarkun 2:e72b06f87c8b 1651 case 4:
exarkun 2:e72b06f87c8b 1652 consigne=20000-position_home ;
exarkun 2:e72b06f87c8b 1653 slope_time=0.25;//t=s
exarkun 2:e72b06f87c8b 1654 start_slope=true;
exarkun 2:e72b06f87c8b 1655 {
exarkun 2:e72b06f87c8b 1656 motorStep = 5;
exarkun 2:e72b06f87c8b 1657 }
exarkun 2:e72b06f87c8b 1658 break;
exarkun 2:e72b06f87c8b 1659
exarkun 2:e72b06f87c8b 1660 case 5:
exarkun 2:e72b06f87c8b 1661 if(true == Wait2(0, 400))//ms
exarkun 2:e72b06f87c8b 1662 {
exarkun 2:e72b06f87c8b 1663 motorStep = 6;
exarkun 2:e72b06f87c8b 1664 }
exarkun 2:e72b06f87c8b 1665 break;
exarkun 2:e72b06f87c8b 1666
exarkun 2:e72b06f87c8b 1667 case 6:
exarkun 2:e72b06f87c8b 1668 consigne=30000-position_home ;
exarkun 2:e72b06f87c8b 1669 slope_time=0.25;//t=s
exarkun 2:e72b06f87c8b 1670 start_slope=true;
exarkun 2:e72b06f87c8b 1671 {
exarkun 2:e72b06f87c8b 1672 motorStep = 7;
exarkun 2:e72b06f87c8b 1673 }
exarkun 2:e72b06f87c8b 1674 break;
exarkun 2:e72b06f87c8b 1675
exarkun 2:e72b06f87c8b 1676 case 7:
exarkun 2:e72b06f87c8b 1677 if(true == Wait2(0, 400))//ms
exarkun 2:e72b06f87c8b 1678 {
exarkun 2:e72b06f87c8b 1679 motorStep = 8;
exarkun 2:e72b06f87c8b 1680 }
exarkun 2:e72b06f87c8b 1681 break;
exarkun 2:e72b06f87c8b 1682
exarkun 2:e72b06f87c8b 1683 case 8:
exarkun 2:e72b06f87c8b 1684 consigne=40000-position_home ;
exarkun 2:e72b06f87c8b 1685 slope_time=0.25;//t=s
exarkun 2:e72b06f87c8b 1686 start_slope=true;
exarkun 2:e72b06f87c8b 1687 {
exarkun 2:e72b06f87c8b 1688 motorStep = 9;
exarkun 2:e72b06f87c8b 1689 }
exarkun 2:e72b06f87c8b 1690 break;
exarkun 2:e72b06f87c8b 1691
exarkun 2:e72b06f87c8b 1692 case 9:
exarkun 2:e72b06f87c8b 1693 if(true == Wait2(0, 400))//ms
exarkun 2:e72b06f87c8b 1694 {
exarkun 2:e72b06f87c8b 1695 motorStep = 10;
exarkun 2:e72b06f87c8b 1696 }
exarkun 2:e72b06f87c8b 1697 break;
exarkun 2:e72b06f87c8b 1698
exarkun 2:e72b06f87c8b 1699 case 10:
exarkun 2:e72b06f87c8b 1700 consigne=50000-position_home ;
exarkun 2:e72b06f87c8b 1701 slope_time=0.25;//t=s
exarkun 2:e72b06f87c8b 1702 start_slope=true;
exarkun 2:e72b06f87c8b 1703 {
exarkun 2:e72b06f87c8b 1704 motorStep = 11;
exarkun 2:e72b06f87c8b 1705 }
exarkun 2:e72b06f87c8b 1706 break;
exarkun 2:e72b06f87c8b 1707
exarkun 2:e72b06f87c8b 1708 case 11:
exarkun 2:e72b06f87c8b 1709 if(true == Wait2(0, 400))//ms
exarkun 2:e72b06f87c8b 1710 {
exarkun 2:e72b06f87c8b 1711 motorStep = 12;
exarkun 2:e72b06f87c8b 1712 }
exarkun 2:e72b06f87c8b 1713 break;
exarkun 2:e72b06f87c8b 1714
exarkun 2:e72b06f87c8b 1715 case 12:
exarkun 2:e72b06f87c8b 1716 consigne=60000-position_home ;
exarkun 2:e72b06f87c8b 1717 slope_time=0.25;//t=s
exarkun 2:e72b06f87c8b 1718 start_slope=true;
exarkun 2:e72b06f87c8b 1719 {
exarkun 2:e72b06f87c8b 1720 motorStep = 13;
exarkun 2:e72b06f87c8b 1721 }
exarkun 2:e72b06f87c8b 1722 break;
exarkun 2:e72b06f87c8b 1723
exarkun 2:e72b06f87c8b 1724 case 13:
exarkun 2:e72b06f87c8b 1725 if(true == Wait2(0, 400))//ms
exarkun 2:e72b06f87c8b 1726 {
exarkun 2:e72b06f87c8b 1727 motorStep = 14;
exarkun 2:e72b06f87c8b 1728 }
exarkun 2:e72b06f87c8b 1729 break;
exarkun 2:e72b06f87c8b 1730
exarkun 2:e72b06f87c8b 1731 case 14:
exarkun 2:e72b06f87c8b 1732 consigne=132000-position_home ;
exarkun 2:e72b06f87c8b 1733 slope_time=1;//t=s
exarkun 2:e72b06f87c8b 1734 start_slope=true;
exarkun 2:e72b06f87c8b 1735 {
exarkun 2:e72b06f87c8b 1736 motorStep = 15;
exarkun 2:e72b06f87c8b 1737 }
exarkun 2:e72b06f87c8b 1738 break;
exarkun 2:e72b06f87c8b 1739
exarkun 2:e72b06f87c8b 1740 case 15:
exarkun 2:e72b06f87c8b 1741 if(true == Wait2(0, 1200))//ms
exarkun 2:e72b06f87c8b 1742 {
exarkun 2:e72b06f87c8b 1743 motorStep = 0;
exarkun 2:e72b06f87c8b 1744 }
exarkun 2:e72b06f87c8b 1745 break;
exarkun 2:e72b06f87c8b 1746 }
exarkun 2:e72b06f87c8b 1747 }
exarkun 2:e72b06f87c8b 1748 break;
exarkun 2:e72b06f87c8b 1749
exarkun 2:e72b06f87c8b 1750 case 'c':
exarkun 2:e72b06f87c8b 1751 if(home_done_tag==1)
exarkun 2:e72b06f87c8b 1752 {
exarkun 2:e72b06f87c8b 1753 //qei.Reset(0);
exarkun 2:e72b06f87c8b 1754 switch(motorStep)
exarkun 2:e72b06f87c8b 1755 {
exarkun 2:e72b06f87c8b 1756 case 0:
exarkun 2:e72b06f87c8b 1757 consigne=132000-position_home ; //1 tour
exarkun 2:e72b06f87c8b 1758 slope_time=2.5;//t =s
exarkun 2:e72b06f87c8b 1759 start_slope=true;
exarkun 2:e72b06f87c8b 1760 {
exarkun 2:e72b06f87c8b 1761 motorStep = 1;
exarkun 2:e72b06f87c8b 1762 }
exarkun 2:e72b06f87c8b 1763 break;
exarkun 2:e72b06f87c8b 1764
exarkun 2:e72b06f87c8b 1765 case 1:
exarkun 2:e72b06f87c8b 1766 if(true == Wait2(0, 3000))//ms
exarkun 2:e72b06f87c8b 1767 {
exarkun 2:e72b06f87c8b 1768 motorStep = 2;
exarkun 2:e72b06f87c8b 1769 }
exarkun 2:e72b06f87c8b 1770 break;
exarkun 2:e72b06f87c8b 1771
exarkun 2:e72b06f87c8b 1772 case 2:
exarkun 2:e72b06f87c8b 1773 consigne=0-position_home ; //1 tour
exarkun 2:e72b06f87c8b 1774 slope_time=2.5;//t=ms
exarkun 2:e72b06f87c8b 1775 start_slope=true;
exarkun 2:e72b06f87c8b 1776 {
exarkun 2:e72b06f87c8b 1777 motorStep = 3;
exarkun 2:e72b06f87c8b 1778 }
exarkun 2:e72b06f87c8b 1779 break;
exarkun 2:e72b06f87c8b 1780
exarkun 2:e72b06f87c8b 1781 case 3:
exarkun 2:e72b06f87c8b 1782 if(true == Wait2(0, 3000))//ms
exarkun 2:e72b06f87c8b 1783 {
exarkun 2:e72b06f87c8b 1784 motorStep = 0;
exarkun 2:e72b06f87c8b 1785 }
exarkun 2:e72b06f87c8b 1786 break;
exarkun 2:e72b06f87c8b 1787 }
exarkun 2:e72b06f87c8b 1788 }
exarkun 2:e72b06f87c8b 1789 break;
exarkun 2:e72b06f87c8b 1790
exarkun 2:e72b06f87c8b 1791 case 'd'://arret a la position actuelle
exarkun 2:e72b06f87c8b 1792 count_slope = 0;
exarkun 2:e72b06f87c8b 1793 position_a_cmd_darret=(LPC_QEI->QEIPOS);//sauvegarde position d'arret
exarkun 2:e72b06f87c8b 1794 consigne=position_a_cmd_darret ; //arret a la position
exarkun 2:e72b06f87c8b 1795 slope_time=0.010;//t =10ms
exarkun 2:e72b06f87c8b 1796 start_slope=true;
exarkun 2:e72b06f87c8b 1797 Wait2(0, 10);
exarkun 2:e72b06f87c8b 1798
exarkun 2:e72b06f87c8b 1799 //qei.Reset(QEI_RESET_POS);
exarkun 2:e72b06f87c8b 1800 //qei.Reset(QEI_RESET_POSOnIDX);
exarkun 2:e72b06f87c8b 1801 //qei.Reset(QEI_RESET_VEL);
exarkun 2:e72b06f87c8b 1802 //qei.Reset(QEI_RESET_IDX);
exarkun 2:e72b06f87c8b 1803
exarkun 2:e72b06f87c8b 1804 break;
exarkun 2:e72b06f87c8b 1805
exarkun 2:e72b06f87c8b 1806 case 'e'://allez a la position0 apret rising edge capteur de home
exarkun 2:e72b06f87c8b 1807
exarkun 2:e72b06f87c8b 1808
exarkun 2:e72b06f87c8b 1809 consigne=((LPC_QEI->QEIPOS)+1000) ; //arret a la position0 +1000
exarkun 2:e72b06f87c8b 1810 slope_time=10;//t =10s
exarkun 2:e72b06f87c8b 1811 start_slope=true;
exarkun 2:e72b06f87c8b 1812 //Wait2(0, 5000);
exarkun 2:e72b06f87c8b 1813
exarkun 2:e72b06f87c8b 1814 //qei.Reset(QEI_RESET_POS);
exarkun 2:e72b06f87c8b 1815 //qei.Reset(QEI_RESET_POSOnIDX);
exarkun 2:e72b06f87c8b 1816 //qei.Reset(QEI_RESET_VEL);
exarkun 2:e72b06f87c8b 1817 //qei.Reset(QEI_RESET_IDX);
exarkun 2:e72b06f87c8b 1818
exarkun 2:e72b06f87c8b 1819 break;
exarkun 2:e72b06f87c8b 1820
exarkun 2:e72b06f87c8b 1821 case 'f'://sortie du capteur home
exarkun 2:e72b06f87c8b 1822
exarkun 2:e72b06f87c8b 1823
exarkun 2:e72b06f87c8b 1824 consigne=(LPC_QEI->QEIPOS)+125000 ;
exarkun 2:e72b06f87c8b 1825 slope_time=15;//t =2000ms
exarkun 2:e72b06f87c8b 1826 start_slope=true;
exarkun 2:e72b06f87c8b 1827 // Wait2(0, 10000);
exarkun 2:e72b06f87c8b 1828
exarkun 2:e72b06f87c8b 1829 //qei.Reset(QEI_RESET_POS);
exarkun 2:e72b06f87c8b 1830 //qei.Reset(QEI_RESET_POSOnIDX);
exarkun 2:e72b06f87c8b 1831 //qei.Reset(QEI_RESET_VEL);
exarkun 2:e72b06f87c8b 1832 //qei.Reset(QEI_RESET_IDX);
exarkun 2:e72b06f87c8b 1833
exarkun 2:e72b06f87c8b 1834 break;
exarkun 2:e72b06f87c8b 1835
exarkun 2:e72b06f87c8b 1836 case 'g'://arret a la position actuelle
exarkun 2:e72b06f87c8b 1837
exarkun 2:e72b06f87c8b 1838 position_a_cmd_darret=(LPC_QEI->QEIPOS);//sauvegarde position d'arret
exarkun 2:e72b06f87c8b 1839 consigne=position_a_cmd_darret ; //arret a la position
exarkun 2:e72b06f87c8b 1840 slope_time=0.25;//t =2000ms
exarkun 2:e72b06f87c8b 1841 start_slope=true;
exarkun 2:e72b06f87c8b 1842 Wait2(0, 500);
exarkun 2:e72b06f87c8b 1843
exarkun 2:e72b06f87c8b 1844 //qei.Reset(QEI_RESET_POS);
exarkun 2:e72b06f87c8b 1845 //qei.Reset(QEI_RESET_POSOnIDX);
exarkun 2:e72b06f87c8b 1846 //qei.Reset(QEI_RESET_VEL);
exarkun 2:e72b06f87c8b 1847 //qei.Reset(QEI_RESET_IDX);
exarkun 2:e72b06f87c8b 1848
exarkun 2:e72b06f87c8b 1849 break;
exarkun 2:e72b06f87c8b 1850
exarkun 2:e72b06f87c8b 1851 case 'h'://mouvement de la home apret un arret
exarkun 1:2fe82be93e80 1852 switch(motorStep)
exarkun 1:2fe82be93e80 1853 {
exarkun 1:2fe82be93e80 1854 case 0:
exarkun 2:e72b06f87c8b 1855 //count_slope = 0;
exarkun 2:e72b06f87c8b 1856 position_a_cmd_darret=(LPC_QEI->QEIPOS);//sauvegarde position d'arret
exarkun 2:e72b06f87c8b 1857 consigne=position_a_cmd_darret ; //arret a la position
exarkun 2:e72b06f87c8b 1858 slope_time=0.1;//t =10ms
exarkun 2:e72b06f87c8b 1859 start_slope=true;
exarkun 2:e72b06f87c8b 1860 Wait2(0, 100);//ms
exarkun 1:2fe82be93e80 1861 {
exarkun 1:2fe82be93e80 1862 motorStep = 1;
exarkun 1:2fe82be93e80 1863 }
exarkun 1:2fe82be93e80 1864 break;
exarkun 1:2fe82be93e80 1865
exarkun 1:2fe82be93e80 1866 case 1:
exarkun 2:e72b06f87c8b 1867 if(true == Wait2(0, 10))//ms
exarkun 1:2fe82be93e80 1868 {
exarkun 2:e72b06f87c8b 1869 motorStep = 2;
exarkun 1:2fe82be93e80 1870 }
exarkun 2:e72b06f87c8b 1871 break;
exarkun 2:e72b06f87c8b 1872
exarkun 2:e72b06f87c8b 1873 case 2:
exarkun 2:e72b06f87c8b 1874 count_slope = 0;
exarkun 2:e72b06f87c8b 1875
exarkun 2:e72b06f87c8b 1876 consigne=-1125000 ; //arret a la position
exarkun 2:e72b06f87c8b 1877 slope_time=60;//t =40s
exarkun 2:e72b06f87c8b 1878 start_slope=true;
exarkun 2:e72b06f87c8b 1879
exarkun 2:e72b06f87c8b 1880
exarkun 1:2fe82be93e80 1881 break;
exarkun 1:2fe82be93e80 1882
exarkun 1:2fe82be93e80 1883
exarkun 1:2fe82be93e80 1884 }
exarkun 2:e72b06f87c8b 1885
exarkun 2:e72b06f87c8b 1886 break;
exarkun 2:e72b06f87c8b 1887
exarkun 2:e72b06f87c8b 1888 }
exarkun 2:e72b06f87c8b 1889
exarkun 2:e72b06f87c8b 1890
exarkun 2:e72b06f87c8b 1891 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
exarkun 1:2fe82be93e80 1892
exarkun 1:2fe82be93e80 1893
exarkun 0:ea04a1655f3b 1894 /*if(device2.readable())//ici on utilise une seconde com rs avec un autre ecrant nextion
exarkun 0:ea04a1655f3b 1895 {
exarkun 0:ea04a1655f3b 1896 c2 = device2.getc();
exarkun 0:ea04a1655f3b 1897 mRxMsg2[mRxIdx2] = c2;
exarkun 0:ea04a1655f3b 1898 mRxIdx2++;
exarkun 0:ea04a1655f3b 1899 if ((mRxIdx2 >= 3) && (mRxMsg2[mRxIdx2-1] == 0xff) && (mRxMsg2[mRxIdx2-2] == 0xff) && (mRxMsg2[mRxIdx2-3] == 0xff)) //valid rx message
exarkun 0:ea04a1655f3b 1900 {
exarkun 0:ea04a1655f3b 1901 mRxIdx2=0;
exarkun 0:ea04a1655f3b 1902
exarkun 0:ea04a1655f3b 1903 if(mRxMsg2[0] == 0x67) //Touch coordinate data return
exarkun 0:ea04a1655f3b 1904 { mTouchX2 = (mRxMsg2[1]*256) + mRxMsg2[2];
exarkun 0:ea04a1655f3b 1905 mTouchY2 = (mRxMsg2[3]*256) + mRxMsg2[4];
exarkun 0:ea04a1655f3b 1906 if(mRxMsg2[5] == 0x01)
exarkun 0:ea04a1655f3b 1907 mTouch2 = true;
exarkun 0:ea04a1655f3b 1908 else
exarkun 0:ea04a1655f3b 1909 mTouch2 = false;
exarkun 0:ea04a1655f3b 1910 }
exarkun 0:ea04a1655f3b 1911 //start switch
exarkun 0:ea04a1655f3b 1912 if((mRxMsg2[0] == 0x65)&&(mRxMsg2[1] == 0x01)&&(mRxMsg2[2] == 0x01)&&(mRxMsg2[3] == 0x00))
exarkun 0:ea04a1655f3b 1913 {
exarkun 0:ea04a1655f3b 1914 keyboard.printf("t");
exarkun 0:ea04a1655f3b 1915 }//uniquement le bouton start allumeras la led 1 en release ---------------SY
exarkun 0:ea04a1655f3b 1916
exarkun 0:ea04a1655f3b 1917 }
exarkun 0:ea04a1655f3b 1918 }*/
exarkun 0:ea04a1655f3b 1919
exarkun 0:ea04a1655f3b 1920 //wait(0.05);
exarkun 1:2fe82be93e80 1921 }
exarkun 0:ea04a1655f3b 1922 }