Не работает Sheduler
- Войдите на сайт для отправки комментариев
Сб, 21/06/2014 - 21:36
В простом коде
#include <Scheduler.h> int counter = 0; int counter1 = 0; void setup() { Scheduler.startLoop(loop1); } void loop () { analogWrite(9, counter); counter++; if (counter > 255){ counter = 0; } delay(33); } void loop1 () { analogWrite(10, counter1); counter1=counter1+5; if (counter1 > 255){ counter1 = 0; } delay(10); yield(); }
возникает ошибка
In file included from sketch_jun21c.ino:2:
C:\Users\МиО\Documents\Arduino\libraries\Scheduler/Scheduler.h:62: error: 'byte' does not name a type
C:\Users\МиО\Documents\Arduino\libraries\Scheduler/Scheduler.h:64: error: 'NUMBER_OF_SCHEDULED_ACTIONS' was not declared in this scope
C:\Users\МиО\Documents\Arduino\libraries\Scheduler/Scheduler.h:65: error: 'byte' does not name a type
sketch_jun21c.ino: In function 'void setup()':
sketch_jun21c:9: error: expected unqualified-id before '.' token
sketch_jun21c.ino: In function 'void loop1()':
sketch_jun21c:28: error: 'yield' was not declared in this scope
У меня mega 2560
Подскажите в чем косяк
Скорее всего в библиотеке Sheduller.
Хотя... слышал но сам не сталкивался, что русские буквы в именах путей могут траблы вызывать.
Скорее всего в библиотеке Sheduller.
Хотя... слышал но сам не сталкивался, что русские буквы в именах путей могут траблы вызывать.
Это я уже понял.
Пробовал в Линуксе. Таже фигня. Только там выскакивает ошибка
не помогло. Поменял пути на латиницу. Теже яйца только в профиль
проблема я думаю в этой строчке
static
const
byte
NUMBER_OF_SCHEDULED_ACTIONS = 10;
#include "WProgram.hAOp"
мат какой-то
а этот заголовочник на что ссылается sheduler.cpp
Похоже что у вас вместо arduino.h подключается WProgram.hAOp...проверить просто - вытащить atduino.h наружу из блока #ifdef, а WProgram.hAOp убрать вообще...если начнет компилироваться то надо проверять почему ARDUINO не определен, или определен не той версии (<100)
На 90% уверен, что в изначальном посте показанны не все ошибки которые выбросила arduinoIDE
Нужно поскролить ошкошко ошибок вверх или вниз. Лог - не полный. Не полное описание ситуации - отсюда и тыкание помогающих в слепую.
Почти наверняка, там будет сообщение что не может найти файл. Либо Arduino.h, либо WProgram.hAOp, а ошибки типа "'byte' does not name a type" - это уже результат что того что файл не найден (в нем как раз и есть описание типов. если файл не найдет, то и "что это за тип" - неизвестно).
Какой именно - зависит от версии ArduinoIDE. Какая у вас версия - известно только телепатам.
Расширение .hAOP - это какая-то порнография. .h - в этом месте, гораздо более ожидаемо. Так что либо убирать этот AOP, либо ставить себе более свежую версию ArduinoIDE.
А еще, было-бы логично, раз используется какая-то стороняя библиотека дать на нее ссылку. Что-бы, если кому-то будет не лень попробовать у себя скомпилировать этот же код мог это сделать. Или он дожен найти ее сам? При этом еще должно повести и должна нагуглится именно ТА версия, которая у вас. Ситуации, когда по интету валяется куча разных версий одной и той же библиотеки - масса. Какая именно у вас - можно только гадать.
расслабся товарищ после моего поста видишь пропал
наверно пошел диск форматировать и винду переставлять
очевидно у него не в одном месте матерщина HAOP
вот плоскогубцы все пересоберет и все получится сходу
вот вот кота от клавиатуры отгонит и все получится :)
расслабся товарищ после моего поста видишь пропал
наверно пошел диск форматировать и винду переставлять
очевидно у него не в одном месте матерщина HAOP
вот плоскогубцы все пересоберет и все получится сходу
вот вот кота от клавиатуры отгонит и все получится :)
Если вы такой умный, то почему строем не ходите? Люди порой бывают на работе и доступа к компьютеру у них в этот момент нет.... Извини если, что то необычное для тебя сказал.
В коде выше опечатка. Реально так:
Пробовал я подгружать по отдельности Arduino.h и WProgram.h . Не работает.
Библиотеку брал здесь http://playground.arduino.cc/Code/Scheduler#Download
Вообщем "как ожидалось". Изначальный лог ошибки, выглядит полность так:
Что сразу приводить нас к необходимости загуглить (или поиском по этому форуму) на слово WProgram.h (или саму ошибку целиком)
И найти рецепт лечения в первых же ссылках: В БИБЛИОТЕКЕ, заменить WProgram.h на
После чего, ошибка 'byte' does not name a type - исчезает окончательно. Проблем с библиотекой больше нет
Видимо это и было у вас на линухе. Там старая версия ArduinoIDE (поэтому там оно не ругалось на отсутсвие WProgram.h).
Зато вылазит новая ошибка теперь уже в самом скетче.
Вот, в какой-то моемент, проблема с библиотекой - решилась. Но это прошло как-то "вскольз".
Все же думают, что вы и дальше с библиотекой воюете, а вы оказывается, уже с новой проблемой боретесь.
Кстати, то что она ругается еще и на неизвестную функцию yield();, про это вы как-то забыли упомянуть.
Или вы сами не заметили, что библиотека у вас заработала? Так это потому, что обычно, работу с библиотекой начинают с запуска примеров идущих с библиотекой. Если они компилируются - значит с библиотекой все в порядке и можно начинать писать свой код. А не наоборот...
Кстати, поглядывание в примеры, помогает и свой код начать писать осмысленно.
Вы пример смотрели, читал-ли собственну ссылку? Смотрели как нужно пользоваться этой библиотекой? Честно говоря я ничего общего между примером и вашим скетчем не увидел.
Не, ну вот сколько времени бы можно было съкономить, если бы сразу сказали "что откуда брали", а если бы я не сказал, давайте ссылку на библиотеку, то вообще до "морковкиного заговения" тут бы гадали кто ходит строем, а кто нет.
OK. На библиотеку вы ссылку дали... а код откуда слямзили почему не сказали? Раз брали-то из раных мест.
Вообщем.... "раз-два-три четеры пять, начинаю телепать..".
Вообщем инсталили мы одну библиотеку, А пример пытаемся запустить от другой. И чего оно не работает спрашивается?
Библиотеку взяли эту: http://playground.arduino.cc/Code/Scheduler#Download
А примеры взяли от этой: http://arduino.cc/en/Reference/Scheduler
Одна - стороняя, другия идет с новыми ArduinoIDE в комплекте (и ставить ее ну нужно).
Причем у той которая в комплете, описание начинается со слов "The Scheduler library enables the Arduino Due", которая, на минуточку на процессоре ARM Cortex-M3, и ни на 8-ми битнике как ваша мега (аллилуя, что хоть какая у вас плата сказали сразу).
1. скачайте заново библиотеку по своей ссылке и происнтальте заново (мало-ли что еще кот, туда успел напечатать за эти дни).
2. Примените к ней "рецепт лечения" из сообщения №15 (только внимательно)
3. Смотрите пример к ЭТОЙ библиотеке, разбирайтесь как с ней работать нужно...
И будет вам щастье.
Спасибо leshak что все талково разжевали. Впредь обещаю описывать проблемы до мельчайших подробностей.