C编译错误:在程序中迷路’\’200’并且在数字常量之前预期’)’

我复制了这个程序,并且遇到了void downFrequency函数(我认为)。 这是为Arduino Uno。 以下是编译器错误:为’Arduino Uno’编译’MY_dds’

MY_dds.ino : stray '\342' in program MY_dds.ino : stray '\200' in program MY_dds.ino : stray '\223' in program MY_dds.ino : stray '\342' in program MY_dds.ino : stray '\200' in program MY_dds.ino : stray '\223' in program MY_dds.ino : stray '\342' in program MY_dds.ino : stray '\200' in program MY_dds.ino : stray '\223' in program MY_dds.ino : stray '\342' in program MY_dds.ino : stray '\200' in program MY_dds.ino : stray '\223' in program MY_dds.ino : stray '\342' in program MY_dds.ino : stray '\200' in program MY_dds.ino : stray '\223' in program MY_dds.ino : stray '\342' in program MY_dds.ino : stray '\200' in program MY_dds.ino : stray '\223' in program MY_dds.ino : stray '\342' in program MY_dds.ino : stray '\200' in program MY_dds.ino : stray '\223' in program MY_dds.ino : stray '\342' in program MY_dds.ino : stray '\200' in program MY_dds.ino : stray '\223' in program MY_dds.ino : stray '\342' in program MY_dds.ino : stray '\200' in program MY_dds.ino : stray '\223' in program MY_dds.ino : : In function 'void downFrequency()': MY_dds.ino : expected `)' before numeric constant MY_dds.ino : expected `)' before numeric constant MY_dds.ino : expected `)' before numeric constant MY_dds.ino : expected `)' before numeric constant MY_dds.ino : expected `)' before numeric constant MY_dds.ino : expected `)' before numeric constant MY_dds.ino : expected `)' before numeric constant MY_dds.ino : expected `)' before numeric constant Error compiling 

这是程序:

 #include  #include  #include  #define RESET 13 #define data_pin 12 #define load_pin A5 #define clock_pin A4 #define clock_hz 120000000LL #define calibrationValue -0.0400000 // this is a value we change to calibrate our particular chip more accurately #define buttonPin A0 // chip, data_pin, load_pin, clock_pin, clock_hz dds ddschip(DDS9850, data_pin, load_pin, clock_pin, clock_hz); // set my dds up with 120mhz onboard crystal LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // some variables to use in our program long toFrequency = 14070000; long currentFrequency; long maxFrequency = 40000000; long minFrequency = 0; int incrementNumber = 6; int maxprogramnumber = 6; // don't forget to increase the menu numbers here!! int programnumber = 1; void setup() { Serial.begin(9600); Serial.println("Beginning Setup"); // set up the LCD's number of columns and rows: lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("T.Robb V0.1b "); //Print a little message lcd.setCursor(0, 1); lcd.print(" DDS Sine wave "); delay(2000); // setup pins pinMode(RESET, OUTPUT); pinMode(data_pin, OUTPUT); pinMode(load_pin, OUTPUT); pinMode(clock_pin, OUTPUT); pinMode(buttonPin, INPUT); digitalWrite(buttonPin, HIGH); ddschip.calibrate(calibrationValue); // this is a value we change to calibrate our particular chip more accurately ddschip.setfrequency(toFrequency); lcd.clear(); } void loop() { if(toFrequency >= maxFrequency){(toFrequency = maxFrequency);} if(toFrequency =1000){} // do nothing while no buttons pressed to chill out delay(5); if(analogRead(buttonPin)>=100 && analogRead(buttonPin)=200 && analogRead(buttonPin)<=400){ // we have pushed down downFrequency(); delay(300); } if((analogRead(buttonPin))=400 && analogRead(buttonPin) 6){incrementNumber = 0;} // this is where the menu goes around and around if(incrementNumber < 0){incrementNumber = 6;} delay(100); lcd.clear(); } void upFrequency() { Serial.println("Going UP Frequency"); switch(incrementNumber){ case 0: toFrequency = (toFrequency + 1); break; case 1: toFrequency = (toFrequency + 10); break; case 2: toFrequency = (toFrequency + 100); break; case 3: toFrequency = (toFrequency + 1000); break; case 4: toFrequency = (toFrequency + 10000); break; case 5: toFrequency = (toFrequency + 100000); break; case 6: toFrequency = (toFrequency + 1000000); break; default: toFrequency = (toFrequency + 10); break; } } void downFrequency() { Serial.println("Going DOWN Frequency"); switch(incrementNumber){ case 0: toFrequency = (toFrequency – 1); break; case 1: toFrequency = (toFrequency – 10); break; case 2: toFrequency = (toFrequency – 100); break; case 3: toFrequency = (toFrequency – 1000); break; case 4: toFrequency = (toFrequency – 10000); break; case 5: toFrequency = (toFrequency – 100000); break; case 6: toFrequency = (toFrequency – 1000000); break; default: toFrequency = (toFrequency – 10); break; } } 

你在downFrequency函数中以某种方式得到了“en dash”字符,而不是正常的减号。

确保使用文本编辑器进行编辑,而不是文字处理器; 并为每一个:

 toFrequency = (toFrequency – 1); ^ 

删除标记的字符,然后重新键入正常的减号。

(如果您对血腥细节感兴趣,“破折号”字符是Unicode 2013 ,以UTF-8编码为三个字节,八进制值为324,200,223,这就是您在错误消息中看到这些数字的原因。)

编译器抱怨源文件中有非ASCII字符。

我的八进制是生锈的,但对我来说它看起来像UTF-8。 342 200 223E2 80 93 ,它是Unicode“EN DASH”。 这段代码由具有cosmetolegy学位的文本编辑器进行减号改造。

可能你的双引号符号(“)是错误的。请检查它们是否真的" ,而不是