Go Down

Topic: passing parameters (Read 707 times) previous topic - next topic

n46130

The following code does not pass parameters to loop in getpulseStep.  All it does is print the number 5 and "pulseStep".


int rS;
int pD;
int k;
#define motorStep 11
#define runStop    6
#define  pedalDown  5
void setup(){
Serial.begin (9600);
pinMode (motorStep, OUTPUT);
pinMode (runStop, INPUT);
pinMode (pedalDown, INPUT);
}
void loop(){
  rS = digitalRead (runStop);
  pD = digitalRead (pedalDown); 

while (rS == LOW){
      rS = digitalRead (runStop);
     pD = digitalRead (pedalDown);   
   while (pD == HIGH){
       pD = digitalRead (pedalDown);   
     Serial.println (pD);
      return;
   }
    int i = 5;
    k=getpulseStep(i);
   Serial.println (k);
}
}
   int getpulseStep(int c){           
   Serial.println ("pulseStep");
     for (int C=c ; C > 0; C--){
     Serial.println (C);
     return (C) ; 
   } 
}           

majenko

Code: [Select]

for (int C=c ; C > 0; C--){
     Serial.println (C);
     return (C) ;
   } 


It does pass parameters.

But you just throw them away.

This loop is fundamentally flawed:

1. Loop for c to 0 times:
1.1 Print C
1.2 return C
2. Never gets here - it just returned.
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

n46130

  The intent is to pass the parameter 5 to getpulseStep and have the for l.oop execute it 5 times. The program runs on the Arduino simulator but not on the actualcard. Any suggestions as how implement it correctly?
 
  int i = 5;
    k=getpulseStep(i);
   Serial.println (k);
}
}
   int getpulseStep(int c){           
   Serial.println ("pulseStep");
     for (int C=c ; C > 0; C--){
     Serial.println (C);
     return (C) ; 
   } 
}           

majenko

You can implement it correctly by not aborting your for loop partway through the first iteration with that return(C) line.
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

n46130

Thanks, that fixed the problem but how do I return the value of "C" if it is outside the for loop?

Go Up