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