Go Down

Topic: expected unqualified-id before numeric constant In (Read 631 times) previous topic - next topic

MovieMaker

expected unqualified-id before numeric constant In function 'void Scan()'

This about says it all. I am new to the Arduino and New to the C language. But, I have written may other programs in other languages. I was trying to add some subroutines written in Pbasic on the BasicStampII to the LARS program when I got this message.  

Any ideas??? :-?

Kitep


MovieMaker

OK, here is the code:

// Begin Robot Code
int micVal;
int cdsVal;
int irLval;  // Left IR
int irCval;  // Center IR
int irRval;  // Right IR
int irRRval; // Rear IR
int i;   // Generic Counter
int x;  // Generic Counter
int PLval;  // Pulse Width for Left Servo
int PRval;  // Pulse Width for Right Servo
int cntr;  // Generic Counter Used for Determining amt. of Object Detections
int counter; // Generic Counter
int clrpth;  // amt. of Milliseconds Of Unobstructed Path
int objdet;  // Time an Object was Detected
int task;  // Routine to Follow for Clearest Path
int pwm;  // Pulse Width for Pan Servo
boolean add;  // Whether to Increment or Decrement PW Value for Pan Servo
int distance;  // Distance to Object Detected via Ultrasonic Ranger
int oldDistance;  // Previous Distance Value Read from Ultrasonic Ranger

float scale = 1.9866666666666666666666666666667;  // *Not Currently Used*

int LeftPin = 6;  // Left Servo
int RightPin = 9;  // Right Servo
int PiezoPin = 11;  // Piezo
int PingServoPin = 5;  // Pan Servo
int irLPin = 0;            // Analog 0; Left IR
int irCPin = 1;            // Analog 1; Center IR
int irRPin = 2;            // Analog 2; Right IR
int irRRPin =3;           // Analog 3; Rear IR
int BrowservoPin = 4;         // Analog 4; Brow Servo
int ultraSoundSignal = 7; // Ultrasound signal pin
int val = 0;              // Used for Ultrasonic Ranger
int ultrasoundValue = 0;  // Raw Distance Val
int oldUltrasoundValue;  // *Not used*
int pulseCount;        // Generic Counter
int timecount = 0; // Echo counter
int ledPin = 13; // LED connected to digital pin 13

#define BAUD 9600
#define CmConstant 1/29.034

void setup() {
 Serial.begin(9600);
 pinMode(PiezoPin, OUTPUT);
 pinMode(ledPin, OUTPUT);
 pinMode(LeftPin, OUTPUT);
 pinMode(PingServoPin, OUTPUT);
 pinMode(BrowservoPin, OUTPUT);
 pinMode(irLPin, INPUT);
 pinMode(irCPin, INPUT);
 pinMode(irRPin, INPUT);
 pinMode(irRRPin, INPUT);
 
 for(i = 0; i < 500; i++) {
   digitalWrite(PiezoPin, HIGH);
   delayMicroseconds(1000);
   digitalWrite(PiezoPin, LOW);
   delayMicroseconds(1000);
 }
 for(i = 0; i < 20; i++) {
 digitalWrite(PingServoPin, HIGH);
 delayMicroseconds(655 * 2);
 digitalWrite(PingServoPin, LOW);
 delay(20);
 }
 ultrasoundValue = 600;
 i = 0;
}
 //InitializeBrows();
 do while (i != 40); i++;
     PULSOUT BrowServoPin, 400
     delay (500)
{
 //Scan();
 Look();
 Go();
}
void Look() {
 irLval = analogRead(irLPin);
 irCval = analogRead(irCPin);
 irRval = analogRead(irRPin);
 irRRval = analogRead(irRRPin);
 //if(counter > 10) {
   //counter = 0;
   //readPing();
 //}
 if(irLval > 200) {
   PLval = 850;
   PRval = 820;
   x = 5;
   cntr = cntr + 1;
   clrpth = 0;
   objdet = millis();
 }
 else if(irCval > 200) {
   PLval = 850;
   PRval = 820;
   x = 10;
   cntr = cntr + 1;
   clrpth = 0;
   objdet = millis();
 }
 else if(irRval > 200) {
   PLval = 650;
   PRval = 620;
   x = 5;
   cntr = cntr + 1;
   clrpth = 0;
   objdet = millis();
 }
 else {
   x = 1;
   PLval = 850;
   PRval = 620;
   counter = counter + 1;
   clrpth = (millis() - objdet);
   if(add == true) {
     pwm = pwm + 50;
   }
   else if(add == false) {
     pwm = pwm - 50;
   }
   if(pwm < 400) {
     pwm = 400;
     add = true;
   }
   if(pwm > 950) {
     pwm = 950;
     add = false;
   }
   digitalWrite(PingServoPin, HIGH);
   delayMicroseconds(pwm * 2);
   digitalWrite(PingServoPin, LOW);
   delay(20);
   readPing();
   if(ultrasoundValue < 500) {
     cntr = cntr + 1;
     switch(pwm) {
       case 400:
         x = 7;
         PLval = 650;
         PRval = 650;
         Go();
         break;
       case 500:
         x = 10;
         PLval = 650;
         PRval = 650;
         Go();
         break;
       case 600:
         x = 14;
         PLval = 850;
         PRval = 850;
         Go();
         break;
       case 700:
         x = 10;
         PLval = 850;
         PRval = 850;
         Go();
         break;
       case 950:
         x = 7;
         PLval = 850;
         PRval = 850;
         Go();
         break;
     }
   }
 }
 //Serial.print("clrpth: ");
 //Serial.println(clrpth);
 //Serial.print("objdet: ");
 //Serial.println(objdet);
 //Serial.print("cntr: ");
 //Serial.println(cntr);
 if(cntr > 25 && clrpth < 2000) {
   clrpth = 0;
   cntr = 0;
   Scan();
 }
}
void Go() {
 for(i = 0; i < x; i++) {
   digitalWrite(LeftPin, HIGH);
   delayMicroseconds(PLval * 2);
   digitalWrite(LeftPin, LOW);
   digitalWrite(RightPin, HIGH);
   delayMicroseconds(PRval * 2);
   digitalWrite(RightPin, LOW);
   delay(20);
 }
}
void readPing() {  // Get Distance from Ultrasonic Ranger
timecount = 0;
val = 0;
pinMode(ultraSoundSignal, OUTPUT); // Switch signalpin to output

/* Send low-high-low pulse to activate the trigger pulse of the sensor
* -------------------------------------------------------------------
*/

digitalWrite(ultraSoundSignal, LOW); // Send low pulse
delayMicroseconds(2); // Wait for 2 microseconds
digitalWrite(ultraSoundSignal, HIGH); // Send high pulse
delayMicroseconds(5); // Wait for 5 microseconds
digitalWrite(ultraSoundSignal, LOW); // Holdoff

/* Listening for echo pulse
* -------------------------------------------------------------------
*/

pinMode(ultraSoundSignal, INPUT); // Switch signalpin to input
val = digitalRead(ultraSoundSignal); // Append signal value to val
while(val == LOW) { // Loop until pin reads a high value
 val = digitalRead(ultraSoundSignal);
}

while(val == HIGH) { // Loop until pin reads a high value
 val = digitalRead(ultraSoundSignal);
 timecount = timecount +1;            // Count echo pulse time
}

/* Writing out values to the serial port
* -------------------------------------------------------------------
*/

ultrasoundValue = timecount; // Append echo pulse time to ultrasoundValue

//serialWrite('A'); // Example identifier for the sensor
//printInteger(ultrasoundValue);
//serialWrite(10);
//serialWrite(13);

/* Lite up LED if any value is passed by the echo pulse
* -------------------------------------------------------------------
*/

if(timecount > 0){
 digitalWrite(ledPin, HIGH);
}
}

void Scan() {   // Scan for the Clearest Path
 oldDistance = 30;
 task = 0;
 for(i = 1; i < 5; i++) {
   switch(i) {
     case 1:
       //Serial.println("Pos. 1");
       pwm = 1125;    ///  incr. by 100 from 1085
       break;
     case 2:
       //Serial.println("Pos. 2");
       pwm = 850; //// increased by 100 from 850
       break;
     case 3:
       //Serial.println("Pos. 3");
       pwm = 400;
       break;
     case 4:
       //Serial.println("Pos. 4");
       pwm = 235;
       break;
   }
   for(pulseCount = 0; pulseCount < 20; pulseCount++) {  // Adjust Pan Servo and Read USR
     digitalWrite(PingServoPin, HIGH);
     delayMicroseconds(pwm * 2);
     digitalWrite(PingServoPin, LOW);
     readPing();
     delay(20);
   }
   distance = ((float)ultrasoundValue * CmConstant);   // Calculate Distance in Cm
   if(distance > oldDistance) {  // If the Newest distance is longer, replace previous reading with it
     oldDistance = distance;
     task = i;   // Set task equal to Pan Servo Position
   }
 }
 //Serial.print("Task: ");
 //Serial.println(task);
 //Serial.print("distance: ");
 //Serial.println(distance);
 //Serial.print("oldDistance: ");
 //Serial.println(oldDistance);
 distance = 50;  // Prevents Scan from Looping
 switch(task) {   // Determine which task should be carried out
   case 0:  // Center was clearest
     x = 28;
     PLval = (850);
     PRval = (850);
     Go();
     break;
   case 1:  // 90 degrees Left was Clearest
     x = 14;
     PLval = (650);
     PRval = (650);
     Go();
     break;
   case 2:  // 45 degrees left
     x = 7;
     PLval = (650);
     PRval = (650);
     Go();
     break;
   case 3:  // 45 degrees right
     x = 7;
     PLval = (850);
     PRval = (850);
     Go();
     break;
   case 4:  // 90 degrees right
     x = 14;
     PLval = (850);
     PRval = (850);
     Go();
     break;
     
     // Brow Control
    /void InitializeBrows()
 switch(task) {   // Determine which task should be carried out
   case 0:  // Initialize Brows
    do while (i != 40); i++;
     PULSOUT BrowservoPin, 400
     delay (500)
     InitializeBrows();
     break;
   case 1:  // Raise Brows
   void RaiseBrows() {
     do while (i != 40); i++;
     PULSOUT BrowservoPin, 15
     delay (500)
    RaiseBrows();
     break;
   case 2:  // Lower Brows
   void LowerBrows(); {
   do while (i != 40); i++;
     PULSOUT BrowservoPin, 600
     delay (500)
     LowerBrows();
     break;

     
  }
}


// End Robot Code


MovieMaker

#3
Aug 02, 2009, 12:28 am Last Edit: Aug 02, 2009, 12:38 am by J.Smith Reason: 1
I think this should've been in the Syntax part of the board. Sorry :-[

I moved as much as I could to the Syntax part of the board. Follow me over there, please.

Thanks!

Go Up