2013-02-24 3 views
-1

У меня есть код ниже я пытаюсь построитьстранные ошибки компиляции кода С

#include stdio.h 
#include stdlib.h 
#include signal.h 
#include wiringPi.h 
#include softPwm.h 

void control_event(int sig); 
int HARD_PWM_PIN=1; Hardware PWM Pin(GPIO18-12) 
int SOFT_PWM_PIN=0; Software PWM Pin(GPIO0-11) 
int DELAY_MS=10; 
int main(void) 
{ 
    (void)signal(SIGINT,control_event); 
    (void)signal (SIGQUIT,control_event); 
    printf(Hardware and software based PWM test on LEDn); 
    if(getuid()!=0) wiringPi requires root privileges 
    { 
    printf(ErrorwiringPi must be run as root.n); 
    return 1; 
    } 
    if(wiringPiSetup()==-1) 
    { 
    printf(ErrorwiringPi setup failed.n); 
    return 1; 
    } 
    pinMode(HARD_PWM_PIN,PWM_OUTPUT); setup hardware pwm 
    softPwmCreate(SOFT_PWM_PIN,0,100); setup software pwm pin 
    int up; 
    int down; 
    while(1) 
    { 
    for(up=1;up=5;down--) 
    { 
     pwmWrite(HARD_PWM_PIN,down); 
     softPwmWrite(SOFT_PWM_PIN,down); 
     delay(DELAY_MS2); 
    } 
    delay(DELAY_MS5); 
    } 
} 
void control_event(int sig) 
{ 
    printf(bbExiting...n); 
    pwmWrite(HARD_PWM_PIN,0); 
    softPwmWrite(SOFT_PWM_PIN,0); 
    delay(100); wait a little for the pwm to finish write 
    exit(0); 
} 

Но я получаю следующие ошибки это только часть из них, но они в значительной степени то же самое во всем с нечетным символы и цифры.

test1.c:20:1: error: stray â\302â in program 
test1.c:20:1: error: stray â\240â in program 
test1.c:21:1: error: stray â\302â in program 
test1.c:21:1: error: stray â\240â in program 
test1.c:22:1: error: stray â\302â in program 
test1.c:22:1: error: stray â\240â in program 
test1.c:23:1: error: stray â\302â in program 
test1.c:23:1: error: stray â\240â in program 
test1.c:23:1: error: stray â\302â in program 
test1.c:23:1: error: stray â\240â in program 
test1.c:24:1: error: stray â\302â in program 
test1.c:24:1: error: stray â\240â in program 
test1.c:24:1: error: stray â\302â in program 
test1.c:24:1: error: stray â\240â in program 
test1.c:25:1: error: stray â\302â in program 
test1.c:25:1: error: stray â\240â in program 
test1.c:26:1: error: stray â\302â in program 
test1.c:26:1: error: stray â\240â in program 
test1.c:26:38: error: unknown type name âsetupâ 
test1.c:26:53: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âpwmâ 

Что может быть неправильным? Местом я получаю этот код из является here

+1

'int HARD_PWM_PIN = 1; Hardware PWM Pin (GPIO18-12) 'это вряд ли правильный синтаксис C ... это' hardware pwm pin ... 'suppsoed, чтобы быть комментарием? в этом случае отсутствует //. –

+2

Возможно, вы использовали текстовый процессор и получили «умные кавычки» вместо двойных кавычек ASCII. Это не хорошо. Строки '# include' не соответствуют ни одной из стандартных форм. –

ответ

3

У вас есть какая-то ошибка синтаксиса -

  • в стороне от этого вашего редактор включен символы Юникода вместо этого ASCII ожидаемого НКУ. - возможный пример для «в качестве двойной двойной кавычки или двойной двойной кавычки вместо ASCII 34.

Вы должны быть осторожны с настройками вашего редактора, когда используете незарегистрированный набор символов или расширенный юникод, как ваш по умолчанию кодировка.

Это также почему «персонажи не отображаются в вашем посте.

3

Нечетные символы и цифры связаны с тем, что некоторые пробелы в файле на самом деле не являются пробелами. Глядя на некоторые из строк в файле в вашей ссылке, после копирования и вставки:

'void control_event(int sig);\n' 
'int HARD_PWM_PIN=1; //Hardware PWM Pin(GPIO18-12)\n' 
'int SOFT_PWM_PIN=0; //Software PWM Pin(GPIO0-11)\n' 
'int DELAY_MS=10;\n' 
'int main(void)\n' 
'{\n' 
'\xc2\xa0 (void)signal(SIGINT,control_event);\n' 
'\xc2\xa0 (void)signal (SIGQUIT,control_event);\n' 
'\xc2\xa0 printf("Hardware and software based PWM test on LED\\n");\n' 
'\xc2\xa0 if(getuid()!=0) //wiringPi requires root privileges\n' 

Эти \xc2\xa0 s являются неразрывный пробел символов ( ), или 302/240 в восьмеричной системе.

Также обратите внимание, что вы, кажется, потеряли несколько маркеров комментариев (//) в пути, что вызывает разные проблемы, поскольку компилятор пытается интерпретировать комментарии как код.

Смежные вопросы