2015-01-07 2 views
0

Im пишу основную программу, которая занимает 20 мм и управляет включением и выключением небольшого света в материнской плате. Но это всегда показывает мне ошибку Может ли кто-нибудь помочь мне исправить это?while loop in arduino отказывается работать (простая прога)

void setup() { 

    pinMode(13, OUTPUT); 
} 


int cycle = 1; 
int time_t=20; 
int time_on = 0; 
int time_off= (time_t-time_on); 
int big=0.05; 
while (cycle<=100) { 
    if (cycle%10==0) { 
    time_on=time_t*big; 
    time_off= time_t-time_on; 
    big=big+0.05; 
    } 

    digitalWrite(13, HIGH); 
    delay(time_on);    
    digitalWrite(13, LOW); 
    delay(time_off));  
cycle++; 

} 
+0

Какая ошибка? – ryanyuyu

+0

PWM: 13: ошибка: ожидаемый неквалифицированный идентификатор до 'while' – user2911214

ответ

3

На платформе Arduino синтаксис программы указывает, что программа состоит из двух функций setup() и loop(). Следовательно, часть, которую нужно повторить снова и снова, должна быть записана внутри функции цикла. Таким образом, ваш код войдет в функцию void с именем loop. И это становится:

void loop(){ 
    while (cycle<=100) { 
    if (cycle%10==0) { 
     time_on=time_t*big; 
     time_off= time_t-time_on; 
     big=big+0.05; 
    } 

    digitalWrite(13, HIGH); 
    delay(time_on);    
    digitalWrite(13, LOW); 
    delay(time_off));  
    cycle++; 
} 

Arduino ссылка: http://arduino.cc/en/Reference/Loop

0

Я не использовал этот язык, но пока я вижу проблему с «ИНТ большой = 0,05;» вы пытаетесь присвоить значение с плавающей запятой целому числу. должен ли он быть двойным, плавающим или похожим типом данных? а затем в цикле, пока есть

time_on=time_t * big; 

раз вы пытаетесь умножить целое число с плавающей запятой и назначить его обратно в целое число. результатом будет значение time_on будет какая-то округленная версия time_t times big. значение time_on будет меняться только по мере того, как значение больших подходов или равно 1. и значение big всегда будет равным 0. вам нужно изменить большие и переменные time_on на типы данных с плавающей точкой.