Go Down

Topic: expected unqualified-id before numeric constant In (Read 732 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy