123

Dependencies:   CPU_Usage DebounceIn QEI TFT_fonts UniGraphic

Committer:
turumputum
Date:
Mon Aug 06 21:31:59 2018 +0000
Revision:
0:c049cebc31b4
work edition

Who changed what in which revision?

UserRevisionLine numberNew contents of line
turumputum 0:c049cebc31b4 1 #include "mbed.h"
turumputum 0:c049cebc31b4 2 //#include "stdio.h"
turumputum 0:c049cebc31b4 3 #include "QEI.h"
turumputum 0:c049cebc31b4 4 #include "string"
turumputum 0:c049cebc31b4 5 #include "Arial12x12.h"
turumputum 0:c049cebc31b4 6 #include "Arial24x23.h"
turumputum 0:c049cebc31b4 7 #include "Arial28x28.h"
turumputum 0:c049cebc31b4 8 #include "font_big.h"
turumputum 0:c049cebc31b4 9 #include "bigFo.h"
turumputum 0:c049cebc31b4 10 #include "ILI9341.h"
turumputum 0:c049cebc31b4 11 #include "Arial43x48_numb.h"
turumputum 0:c049cebc31b4 12 #include "DebounceIn.h"
turumputum 0:c049cebc31b4 13 #include "CPU_Usage.h"
turumputum 0:c049cebc31b4 14
turumputum 0:c049cebc31b4 15
turumputum 0:c049cebc31b4 16
turumputum 0:c049cebc31b4 17 #define PI (3.141592653589793)
turumputum 0:c049cebc31b4 18
turumputum 0:c049cebc31b4 19 #define encoderRATE 100
turumputum 0:c049cebc31b4 20 #define lcdRATE 100
turumputum 0:c049cebc31b4 21 #define stepRATE 15
turumputum 0:c049cebc31b4 22
turumputum 0:c049cebc31b4 23 #define mmRatio 4450
turumputum 0:c049cebc31b4 24
turumputum 0:c049cebc31b4 25 #define stAngle 0
turumputum 0:c049cebc31b4 26 #define stFeed 1
turumputum 0:c049cebc31b4 27 #define stThread 2
turumputum 0:c049cebc31b4 28
turumputum 0:c049cebc31b4 29 #define editPos 0
turumputum 0:c049cebc31b4 30 #define editMult 1
turumputum 0:c049cebc31b4 31 #define editFeed 2
turumputum 0:c049cebc31b4 32
turumputum 0:c049cebc31b4 33 Timer t;
turumputum 0:c049cebc31b4 34
turumputum 0:c049cebc31b4 35 DigitalOut myled1(LED1);
turumputum 0:c049cebc31b4 36
turumputum 0:c049cebc31b4 37 Serial pc(USBTX, USBRX);
turumputum 0:c049cebc31b4 38
turumputum 0:c049cebc31b4 39
turumputum 0:c049cebc31b4 40 Thread threadEnc(osPriorityNormal);
turumputum 0:c049cebc31b4 41 Thread threadStep(osPriorityAboveNormal);
turumputum 0:c049cebc31b4 42
turumputum 0:c049cebc31b4 43 DebounceIn wheelPanButton(PC_12);
turumputum 0:c049cebc31b4 44
turumputum 0:c049cebc31b4 45 DebounceIn pos1Button(PB_12);
turumputum 0:c049cebc31b4 46 DebounceIn pos2Button(PA_12);
turumputum 0:c049cebc31b4 47 DebounceIn selectButton(PA_11);
turumputum 0:c049cebc31b4 48
turumputum 0:c049cebc31b4 49 InterruptIn switch1Button(PC_8);
turumputum 0:c049cebc31b4 50 InterruptIn switch2Button(PC_6);
turumputum 0:c049cebc31b4 51 InterruptIn switch3Button(PC_5);
turumputum 0:c049cebc31b4 52 //PC_6 midle feed rubilnik pin
turumputum 0:c049cebc31b4 53
turumputum 0:c049cebc31b4 54
turumputum 0:c049cebc31b4 55 DigitalOut stepPin(PB_1);
turumputum 0:c049cebc31b4 56 DigitalOut dirPin(PB_2);
turumputum 0:c049cebc31b4 57
turumputum 0:c049cebc31b4 58
turumputum 0:c049cebc31b4 59 //Use X4 encoding.
turumputum 0:c049cebc31b4 60 //QEI wheel(p29, p30, NC, 624, QEI::X4_ENCODING);
turumputum 0:c049cebc31b4 61 //Use X2 encoding by default.
turumputum 0:c049cebc31b4 62 //QEI wheel (p29, p30, NC, 624);
turumputum 0:c049cebc31b4 63 QEI wheel (PB_13, PB_14, PB_15, 4000, QEI::X4_ENCODING);
turumputum 0:c049cebc31b4 64
turumputum 0:c049cebc31b4 65 QEI wheelPan (PC_11, PC_10, NC, 20, QEI::X4_ENCODING);
turumputum 0:c049cebc31b4 66
turumputum 0:c049cebc31b4 67 PinName buspins[8]={D8,D9,D2,D3,D4,D5,D6,D7};
turumputum 0:c049cebc31b4 68 ILI9341 myLCD(BUS_8, buspins, A3, A4, A2, A1, A0,"myLCD"); // Parallel Bus 8bit, buspins array, CS, reset, RS, WR, RD
turumputum 0:c049cebc31b4 69
turumputum 0:c049cebc31b4 70
turumputum 0:c049cebc31b4 71 unsigned short backgroundcolor=Blue;
turumputum 0:c049cebc31b4 72 unsigned short foregroundcolor=White;
turumputum 0:c049cebc31b4 73
turumputum 0:c049cebc31b4 74
turumputum 0:c049cebc31b4 75
turumputum 0:c049cebc31b4 76 int state=1, prevState=-1;
turumputum 0:c049cebc31b4 77
turumputum 0:c049cebc31b4 78 volatile int dir,z=1, k=7, edit=0;
turumputum 0:c049cebc31b4 79
turumputum 0:c049cebc31b4 80 volatile float stPos=0, stPrevPos=1, stTarget=0;
turumputum 0:c049cebc31b4 81 volatile float stepMult =1, prevStepMult=0, pos1, pos2, prevPos1, prevPos2;
turumputum 0:c049cebc31b4 82
turumputum 0:c049cebc31b4 83 float multMass[2]={0.1,1};
turumputum 0:c049cebc31b4 84 int feedMass[10]={30,60,120,180,240,300,450,600,900,1200};
turumputum 0:c049cebc31b4 85
turumputum 0:c049cebc31b4 86 volatile int Pulses = 0, panPulses=0, feedRate = 450, delta;
turumputum 0:c049cebc31b4 87 volatile int PrevPulses = 0;
turumputum 0:c049cebc31b4 88 volatile int rev = 0;
turumputum 0:c049cebc31b4 89 volatile int prevRev = 0;
turumputum 0:c049cebc31b4 90 volatile int panAngle=0, prevPanAngle=0;
turumputum 0:c049cebc31b4 91 volatile float stepPeriod = stepRATE;
turumputum 0:c049cebc31b4 92 volatile float Angle = 0;
turumputum 0:c049cebc31b4 93 float prevAngle=0;
turumputum 0:c049cebc31b4 94 bool wheelBut, prevWheelBut, startUp=true, showStopPos=1;
turumputum 0:c049cebc31b4 95
turumputum 0:c049cebc31b4 96
turumputum 0:c049cebc31b4 97 void printWheelPan(){
turumputum 0:c049cebc31b4 98 myLCD.set_font((unsigned char*) SCProSB31x55);
turumputum 0:c049cebc31b4 99 myLCD.locate(50,50);
turumputum 0:c049cebc31b4 100 myLCD.printf("%.1f ", Angle);
turumputum 0:c049cebc31b4 101 myLCD.set_font((unsigned char*) Arial43x48_numb);
turumputum 0:c049cebc31b4 102 myLCD.locate(50,50);
turumputum 0:c049cebc31b4 103 myLCD.printf("%.1f ", Angle);
turumputum 0:c049cebc31b4 104 }
turumputum 0:c049cebc31b4 105
turumputum 0:c049cebc31b4 106 void printWheelBut(){
turumputum 0:c049cebc31b4 107 myLCD.set_font((unsigned char*) Arial24x23);
turumputum 0:c049cebc31b4 108 myLCD.locate(150,50);
turumputum 0:c049cebc31b4 109 myLCD.printf("But %.1i ", wheelBut);
turumputum 0:c049cebc31b4 110 }
turumputum 0:c049cebc31b4 111
turumputum 0:c049cebc31b4 112 void printMult(){
turumputum 0:c049cebc31b4 113 myLCD.set_font((unsigned char*) Arial24x23);
turumputum 0:c049cebc31b4 114 myLCD.locate(90,215);
turumputum 0:c049cebc31b4 115 myLCD.printf("%.1f", stepMult);
turumputum 0:c049cebc31b4 116 }
turumputum 0:c049cebc31b4 117
turumputum 0:c049cebc31b4 118 void printFeed(){
turumputum 0:c049cebc31b4 119 myLCD.set_font((unsigned char*) Arial24x23);
turumputum 0:c049cebc31b4 120 myLCD.locate(250,215);
turumputum 0:c049cebc31b4 121 myLCD.printf("%i", feedRate);
turumputum 0:c049cebc31b4 122 }
turumputum 0:c049cebc31b4 123
turumputum 0:c049cebc31b4 124 void printTrPos(){
turumputum 0:c049cebc31b4 125 myLCD.set_font((unsigned char*) Arial24x23);
turumputum 0:c049cebc31b4 126 myLCD.locate(90,185);
turumputum 0:c049cebc31b4 127 myLCD.printf("%.1f", pos1/mmRatio);
turumputum 0:c049cebc31b4 128 }
turumputum 0:c049cebc31b4 129
turumputum 0:c049cebc31b4 130 void printPos2(){
turumputum 0:c049cebc31b4 131 myLCD.set_font((unsigned char*) Arial24x23);
turumputum 0:c049cebc31b4 132 myLCD.locate(250,185);
turumputum 0:c049cebc31b4 133 myLCD.printf("%.1f", pos2/mmRatio);
turumputum 0:c049cebc31b4 134 }
turumputum 0:c049cebc31b4 135
turumputum 0:c049cebc31b4 136 void printStPos(){
turumputum 0:c049cebc31b4 137 myLCD.foreground(Green);
turumputum 0:c049cebc31b4 138 myLCD.set_font((unsigned char*) Arial12x12);
turumputum 0:c049cebc31b4 139 myLCD.locate(10,95);
turumputum 0:c049cebc31b4 140 float val=stTarget/mmRatio;
turumputum 0:c049cebc31b4 141 myLCD.printf("%.1f ", val);
turumputum 0:c049cebc31b4 142 myLCD.foreground(White);
turumputum 0:c049cebc31b4 143 myLCD.set_font((unsigned char*) SCProSB31x55);
turumputum 0:c049cebc31b4 144 myLCD.locate(60,70);
turumputum 0:c049cebc31b4 145 val=stPos/mmRatio;
turumputum 0:c049cebc31b4 146 myLCD.printf("%.1f ", val);
turumputum 0:c049cebc31b4 147 }
turumputum 0:c049cebc31b4 148
turumputum 0:c049cebc31b4 149
turumputum 0:c049cebc31b4 150 void printStAngle(){
turumputum 0:c049cebc31b4 151 myLCD.cls();
turumputum 0:c049cebc31b4 152 myLCD.set_orientation(1);
turumputum 0:c049cebc31b4 153 myLCD.background(Blue); // set background to black
turumputum 0:c049cebc31b4 154 myLCD.foreground(White); // set chars to white
turumputum 0:c049cebc31b4 155 myLCD.rect(0,0,320,240, Blue);
turumputum 0:c049cebc31b4 156 myLCD.set_font((unsigned char*) Arial28x28);
turumputum 0:c049cebc31b4 157 myLCD.locate(100,10);
turumputum 0:c049cebc31b4 158 myLCD.printf("ANGLE mode");
turumputum 0:c049cebc31b4 159 myLCD.set_font((unsigned char*) Arial24x23);
turumputum 0:c049cebc31b4 160 myLCD.locate(200,300);
turumputum 0:c049cebc31b4 161 myLCD.printf("o");
turumputum 0:c049cebc31b4 162 }
turumputum 0:c049cebc31b4 163 //PRINT FEED MODE
turumputum 0:c049cebc31b4 164 void printStFeed(){
turumputum 0:c049cebc31b4 165 myLCD.cls();
turumputum 0:c049cebc31b4 166 myLCD.set_orientation(1);
turumputum 0:c049cebc31b4 167 myLCD.background(Blue); // set background to black
turumputum 0:c049cebc31b4 168 myLCD.foreground(White); // set chars to white
turumputum 0:c049cebc31b4 169 myLCD.rect(0,0,320,240, Blue);
turumputum 0:c049cebc31b4 170 myLCD.set_font((unsigned char*) Arial28x28);
turumputum 0:c049cebc31b4 171 myLCD.locate(75,10);
turumputum 0:c049cebc31b4 172 myLCD.printf(" FEED mode");
turumputum 0:c049cebc31b4 173 myLCD.background(Black);
turumputum 0:c049cebc31b4 174 myLCD.set_font((unsigned char*) Arial24x23);
turumputum 0:c049cebc31b4 175 myLCD.locate(5,70);
turumputum 0:c049cebc31b4 176 myLCD.printf("pos ");
turumputum 0:c049cebc31b4 177 myLCD.rect(0,180,160,210, Blue);
turumputum 0:c049cebc31b4 178 myLCD.rect(160,180,320,210, Blue);
turumputum 0:c049cebc31b4 179 myLCD.rect(160,210,320,240, Blue);
turumputum 0:c049cebc31b4 180 myLCD.rect(0,210,160,240, Blue);
turumputum 0:c049cebc31b4 181 myLCD.set_font((unsigned char*) Arial24x23);
turumputum 0:c049cebc31b4 182 myLCD.locate(5,215);
turumputum 0:c049cebc31b4 183 myLCD.printf("Mult:");
turumputum 0:c049cebc31b4 184 myLCD.locate(165,215);
turumputum 0:c049cebc31b4 185 myLCD.printf("Feed:");
turumputum 0:c049cebc31b4 186 myLCD.locate(5,185);
turumputum 0:c049cebc31b4 187 myLCD.printf("Pos1:");
turumputum 0:c049cebc31b4 188 //myLCD.locate(165,185);
turumputum 0:c049cebc31b4 189 //myLCD.printf("Pos2:");
turumputum 0:c049cebc31b4 190 printFeed();
turumputum 0:c049cebc31b4 191 }
turumputum 0:c049cebc31b4 192
turumputum 0:c049cebc31b4 193 void pitnTmpVar(float var){
turumputum 0:c049cebc31b4 194 myLCD.set_font((unsigned char*) Arial12x12);
turumputum 0:c049cebc31b4 195 myLCD.locate(5,5);
turumputum 0:c049cebc31b4 196 myLCD.printf("%.1f ", var);
turumputum 0:c049cebc31b4 197 }
turumputum 0:c049cebc31b4 198
turumputum 0:c049cebc31b4 199 void encoderPan_thread() {
turumputum 0:c049cebc31b4 200 while(1){
turumputum 0:c049cebc31b4 201
turumputum 0:c049cebc31b4 202 wheelBut=wheelPanButton.read();
turumputum 0:c049cebc31b4 203 if(!wheelBut){
turumputum 0:c049cebc31b4 204 int prevPanPulses=panPulses;
turumputum 0:c049cebc31b4 205 panPulses=wheelPan.getPulses()/4;
turumputum 0:c049cebc31b4 206 delta = (prevPanPulses - panPulses);
turumputum 0:c049cebc31b4 207 if(edit==0){
turumputum 0:c049cebc31b4 208 stTarget = stTarget+ (delta*stepMult*mmRatio);
turumputum 0:c049cebc31b4 209 }else if(edit==1){
turumputum 0:c049cebc31b4 210 z=z+delta;
turumputum 0:c049cebc31b4 211 if(z>1){z=0;}else if (z<0){z=1;}
turumputum 0:c049cebc31b4 212 stepMult= multMass[z];
turumputum 0:c049cebc31b4 213 }else if(edit==2){
turumputum 0:c049cebc31b4 214 k=k+delta;
turumputum 0:c049cebc31b4 215 if(k>9){k=0;}else if (k<0){k=9;}
turumputum 0:c049cebc31b4 216 feedRate = feedMass[k];
turumputum 0:c049cebc31b4 217 stepPeriod=60000000/(feedRate*mmRatio);
turumputum 0:c049cebc31b4 218 }
turumputum 0:c049cebc31b4 219 }else{
turumputum 0:c049cebc31b4 220 edit++;
turumputum 0:c049cebc31b4 221 if(edit>2){edit=0;}
turumputum 0:c049cebc31b4 222 wait_ms(100);
turumputum 0:c049cebc31b4 223 }
turumputum 0:c049cebc31b4 224
turumputum 0:c049cebc31b4 225 if(!pos1Button.read()){
turumputum 0:c049cebc31b4 226 pos1=stPos;
turumputum 0:c049cebc31b4 227 printTrPos();
turumputum 0:c049cebc31b4 228 wait_ms(100);
turumputum 0:c049cebc31b4 229 }
turumputum 0:c049cebc31b4 230
turumputum 0:c049cebc31b4 231 if(!pos2Button.read()){
turumputum 0:c049cebc31b4 232 stPos=0;
turumputum 0:c049cebc31b4 233 stTarget = 0;
turumputum 0:c049cebc31b4 234 printStPos();
turumputum 0:c049cebc31b4 235 wait_ms(100);
turumputum 0:c049cebc31b4 236 }
turumputum 0:c049cebc31b4 237
turumputum 0:c049cebc31b4 238 if(!selectButton.read()){
turumputum 0:c049cebc31b4 239 state++;
turumputum 0:c049cebc31b4 240 if(state>1){state=0;}
turumputum 0:c049cebc31b4 241 wait_ms(500);
turumputum 0:c049cebc31b4 242 }
turumputum 0:c049cebc31b4 243
turumputum 0:c049cebc31b4 244 wait_ms(encoderRATE);
turumputum 0:c049cebc31b4 245
turumputum 0:c049cebc31b4 246 }
turumputum 0:c049cebc31b4 247 }
turumputum 0:c049cebc31b4 248
turumputum 0:c049cebc31b4 249 void feedToPos(){
turumputum 0:c049cebc31b4 250 stepPeriod=60000000/(feedRate*mmRatio);
turumputum 0:c049cebc31b4 251 stTarget = pos1;
turumputum 0:c049cebc31b4 252 wait_ms(100);
turumputum 0:c049cebc31b4 253 }
turumputum 0:c049cebc31b4 254 void feedHandMode(){
turumputum 0:c049cebc31b4 255 stepPeriod=stepRATE;
turumputum 0:c049cebc31b4 256 wait_ms(100);
turumputum 0:c049cebc31b4 257 }
turumputum 0:c049cebc31b4 258 void feedToZero(){
turumputum 0:c049cebc31b4 259 stepPeriod=60000000/(feedRate*mmRatio);
turumputum 0:c049cebc31b4 260 stTarget = 0;
turumputum 0:c049cebc31b4 261 wait_ms(100);
turumputum 0:c049cebc31b4 262 }
turumputum 0:c049cebc31b4 263
turumputum 0:c049cebc31b4 264
turumputum 0:c049cebc31b4 265 void stepper_thread() {
turumputum 0:c049cebc31b4 266 while(1){
turumputum 0:c049cebc31b4 267 if(stTarget>stPos){dirPin=1; dir=1;}else{dirPin=0;dir=-1;}
turumputum 0:c049cebc31b4 268
turumputum 0:c049cebc31b4 269 if(stTarget!=stPos){
turumputum 0:c049cebc31b4 270 stepPin=1;
turumputum 0:c049cebc31b4 271 wait_us(2);
turumputum 0:c049cebc31b4 272 stepPin=0;
turumputum 0:c049cebc31b4 273 wait_us(stepPeriod);
turumputum 0:c049cebc31b4 274 stPos=stPos+dir;
turumputum 0:c049cebc31b4 275 } else{
turumputum 0:c049cebc31b4 276 wait_ms(100);
turumputum 0:c049cebc31b4 277 }
turumputum 0:c049cebc31b4 278
turumputum 0:c049cebc31b4 279 }
turumputum 0:c049cebc31b4 280 }
turumputum 0:c049cebc31b4 281
turumputum 0:c049cebc31b4 282
turumputum 0:c049cebc31b4 283 int main() {
turumputum 0:c049cebc31b4 284 pc.printf("startUp\r\n");
turumputum 0:c049cebc31b4 285 wheelPanButton.mode(PullUp);
turumputum 0:c049cebc31b4 286 pos1Button.mode(PullUp);
turumputum 0:c049cebc31b4 287 pos2Button.mode(PullUp);
turumputum 0:c049cebc31b4 288 selectButton.mode(PullUp);
turumputum 0:c049cebc31b4 289 switch1Button.mode(PullUp);
turumputum 0:c049cebc31b4 290 switch2Button.mode(PullUp);
turumputum 0:c049cebc31b4 291 switch3Button.mode(PullUp);
turumputum 0:c049cebc31b4 292 pc.printf("ButtonIsPullUp\r\n");
turumputum 0:c049cebc31b4 293
turumputum 0:c049cebc31b4 294 switch1Button.fall(&feedToPos);
turumputum 0:c049cebc31b4 295 switch2Button.fall(&feedHandMode);
turumputum 0:c049cebc31b4 296 switch3Button.fall(&feedToZero);
turumputum 0:c049cebc31b4 297 pc.printf("InteruptIsOn\r\n");
turumputum 0:c049cebc31b4 298
turumputum 0:c049cebc31b4 299 //wheelPanButton.set_samples(5);
turumputum 0:c049cebc31b4 300 //wheelPanButton.set_debounce_us(5000);
turumputum 0:c049cebc31b4 301 threadEnc.start(encoderPan_thread);
turumputum 0:c049cebc31b4 302 pc.printf("encoderThreadIsRunning\r\n");
turumputum 0:c049cebc31b4 303 wait_ms(500);
turumputum 0:c049cebc31b4 304 threadStep.start(stepper_thread);
turumputum 0:c049cebc31b4 305 pc.printf("stepperThreadIsRunning\r\n");
turumputum 0:c049cebc31b4 306 wait_ms(500);
turumputum 0:c049cebc31b4 307
turumputum 0:c049cebc31b4 308
turumputum 0:c049cebc31b4 309 while(1){
turumputum 0:c049cebc31b4 310
turumputum 0:c049cebc31b4 311 //ANGLE MODE
turumputum 0:c049cebc31b4 312 if ((state==stAngle)){
turumputum 0:c049cebc31b4 313 //print screen
turumputum 0:c049cebc31b4 314 if(state!=prevState){
turumputum 0:c049cebc31b4 315 printStAngle();
turumputum 0:c049cebc31b4 316 prevState=state;
turumputum 0:c049cebc31b4 317 }
turumputum 0:c049cebc31b4 318 if(prevAngle!=Angle){
turumputum 0:c049cebc31b4 319 printWheelPan();
turumputum 0:c049cebc31b4 320 prevAngle=Angle;
turumputum 0:c049cebc31b4 321 stTarget = Angle*stepMult;
turumputum 0:c049cebc31b4 322 }
turumputum 0:c049cebc31b4 323
turumputum 0:c049cebc31b4 324 if(prevWheelBut!=wheelBut){
turumputum 0:c049cebc31b4 325 //printWheelBut();
turumputum 0:c049cebc31b4 326 prevWheelBut=wheelBut;
turumputum 0:c049cebc31b4 327 }
turumputum 0:c049cebc31b4 328
turumputum 0:c049cebc31b4 329
turumputum 0:c049cebc31b4 330 }
turumputum 0:c049cebc31b4 331 //FEED MODE
turumputum 0:c049cebc31b4 332 if ((state==stFeed)){
turumputum 0:c049cebc31b4 333 //print screen
turumputum 0:c049cebc31b4 334 if(state!=prevState){
turumputum 0:c049cebc31b4 335 printStFeed();
turumputum 0:c049cebc31b4 336 prevState=state;
turumputum 0:c049cebc31b4 337 }
turumputum 0:c049cebc31b4 338 //check encoder
turumputum 0:c049cebc31b4 339 if(stPrevPos!=stPos){
turumputum 0:c049cebc31b4 340 printStPos();
turumputum 0:c049cebc31b4 341 stPrevPos=stPos;
turumputum 0:c049cebc31b4 342 showStopPos =1;
turumputum 0:c049cebc31b4 343 }else if(showStopPos){
turumputum 0:c049cebc31b4 344 printStPos();
turumputum 0:c049cebc31b4 345 showStopPos=0;
turumputum 0:c049cebc31b4 346 }else if(edit==1){
turumputum 0:c049cebc31b4 347 printMult();
turumputum 0:c049cebc31b4 348 }else if(edit==2){
turumputum 0:c049cebc31b4 349 printFeed();
turumputum 0:c049cebc31b4 350 }
turumputum 0:c049cebc31b4 351
turumputum 0:c049cebc31b4 352
turumputum 0:c049cebc31b4 353
turumputum 0:c049cebc31b4 354
turumputum 0:c049cebc31b4 355 if(prevStepMult!=stepMult){
turumputum 0:c049cebc31b4 356 printMult();
turumputum 0:c049cebc31b4 357 prevStepMult=stepMult;
turumputum 0:c049cebc31b4 358 }
turumputum 0:c049cebc31b4 359
turumputum 0:c049cebc31b4 360
turumputum 0:c049cebc31b4 361 }
turumputum 0:c049cebc31b4 362 //pitnTmpVar(stepPeriod);
turumputum 0:c049cebc31b4 363 wait_ms(lcdRATE);
turumputum 0:c049cebc31b4 364 }
turumputum 0:c049cebc31b4 365
turumputum 0:c049cebc31b4 366 }
turumputum 0:c049cebc31b4 367