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