2016-12-23 2 views
-3

HI там у меня ошибка:Arduino недействительным объявление функции

deska0_1:263: error: no match for call to '(String) (bool)' 

    koloron (1); 

deska0_1:265: error: no match for call to '(String) (bool)' 

    koloroff (1); 

exit status 1 
no match for call to '(String) (bool)' 

в ничтожной функции:

void blinkall (String kolor, int pauza) 
{ 
    String koloron;// declaring new string 
    String koloroff; 

    koloron = String (kolor + "n"); 
    koloroff = String (kolor + "f"); 

    koloron (1); 
    delay (pauza); 
    koloroff (1); 
    delay (pauza); 
} 

проблема заключается Я не называю koloron или koloroff в качестве аргументов blinkall то, что я хочу является: функции blinkall принимает 2 аргумента: колора, который является цветом Паужа который Blink задержки:

ранее в коде есть еще одна пустота называется, например Redn (загорается красный светодиод), а другой RedF (который превращает его)

так что теперь в качестве аргумента функции blinkall что я хочу:

Blink все берут 2 аргументы цвета и задержки пример

blinkall (красный, 100) Я хочу, чтобы запустить красный + п == Redn // это другая функция ничтожным свою очередь, привело на , а затем задержать , а затем красный + f == redf // также другая пустота, чтобы отключить

Надеюсь, я достаточно четко прояснил :)

+3

'koloron' и' koloroff' являются 'strings', и вы использовали его как функции. – McNets

+0

C++ не работает. C++ не является интерпретированным языком. Я уверен, что есть лучший способ делать то, что вы на самом деле связываете. –

+0

Я на самом деле делаю это на arduino, но, я думаю, функция декларации одинакова для обоих? –

ответ

1

Вы ищете ошибки в неположенном месте. Проблема не в аргументах функции. Ошибка компиляции прямо говорит о том, что проблемы связаны с koloron (1) и koloroff (1). koloron и являются строками, и вы пытаетесь определить их целые числа (в этом случае 1 используется компилятором как true, поэтому bool, следовательно, сообщение об ошибке). Попробуйте

koloron = "1"; 
koloroff = "1"; 
+0

Thing is Я хочу, чтобы эта строка вызывала другую функцию с argumengs –

+1

@ MichałS вы говорите, что у вас есть, например, функции, вызываемые, например, bluen, bluef, redn, redf ... и вы хотите передать «синий» и получить функции bluen/bluef, затем передать «красный» и получить redn и redf ...? Если это так, извините, но язык C не позволяет вам выполнять эту рабочую среду. Вам придется изменить свой код. Лучшее решение состоит в том, чтобы иметь перечисление с цветами, а затем либо выполнять переключатель на нем, либо, лучше, если единственное, что отличается от одного цвета к другому, - это просто штырь, чтобы избежать дублирования кода функции и передать контакт в качестве параметра. – frarugi87

+0

У вас есть идея, но я использую 5 аналоговых светодиодов и параметр koloron (1), это номер светодиода 12345 ... с номерами контактов, назначенными в разных функциях, поэтому, если я вызываю redn (1 && 4). Я хочу, чтобы 1-й мурманский 4-й явился свет. Разве нет возможности вызывать функцию из массива string или char? –

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