#1 2017-03-09 20:24:39

Bars
Учасник
Зареєстрований: 2017-03-09
Повідомлень: 4

Помогите откорректировать скечь

Добрый день, 

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

Остання редакція Bars (2017-03-14 17:38:26)

Неактивний

#2 2017-03-09 20:45:38

gera_b
Учасник
Зареєстрований: 2016-08-19
Повідомлень: 36

Re: Помогите откорректировать скечь

чтоьы понять что идет не так натыкай повсюду  Serial.print(%отладочная информация%);

что бросилось в глаза сразу
if (Demo == true)
  {
    Demomodus;
  } 

вызов функции происходит не так.  Demomodus(); должно быть

Неактивний

#3 2017-03-09 20:52:37

Bars
Учасник
Зареєстрований: 2017-03-09
Повідомлень: 4

Re: Помогите откорректировать скечь

Спасибо Гера,

Demomodus(); исправил, вызов не происходит

Неактивний

#4 2017-03-09 22:06:48

Волшебник
Учасник
Зареєстрований: 2017-02-28
Повідомлень: 8

Re: Помогите откорректировать скечь

Таймер1 инициализация берётся в микросекундах, Timer1.initialize(alle_x_minuten*100); т.е. у Вас 100 мкс или 10 кГц.
В библиотеке есть примеры, почему бы не отладить работу таймера отдельно в простом скетче а потом уж усложнять светодиодами?

Неактивний

#5 2017-03-10 00:07:23

Bars
Учасник
Зареєстрований: 2017-03-09
Повідомлень: 4

Re: Помогите откорректировать скечь

Волшебник ты прав, 100 в микросекундах   
правильно будет так Timer1.initialize(alle_x_minuten*60000);
изменял для тестирования что бы долго не ждать вызов демо.


Я только недавно начал знакомиться с ардуино, поэтому для меня ещё не всё так просто  smile

Остання редакція Bars (2017-03-10 00:13:38)

Неактивний

#6 2017-03-10 00:46:24

Волшебник
Учасник
Зареєстрований: 2017-02-28
Повідомлень: 8

Re: Помогите откорректировать скечь

Я так и понял, что новичёк, поэтому и говорю что чем проще скетч, тем легче в нём разобраться. Все части лучше отлаживать отдельно, а потом уж соединять /добавлять по одной. Кстати привыкайте писать 60000UL, а то компилёр такой фокусник, что никогда не знаешь как он интерпретирует, надо указывать 'принудительно' что размер умножения будет больше чем интежер вмещает.

Неактивний

#7 2017-03-10 18:13:03

Bars
Учасник
Зареєстрований: 2017-03-09
Повідомлень: 4

Re: Помогите откорректировать скечь

вроде и так почти всё лишнее удалил, но сижу второй день и не могу понять почему не происходит вызов демо sad yikes

Неактивний

#8 2017-03-10 18:20:48

gera_b
Учасник
Зареєстрований: 2016-08-19
Повідомлень: 36

Re: Помогите откорректировать скечь

по сценарию демо становится тру только if (Serial.available() > 0)

консоль отладки-то открыта или просто подано питание и все ? smile)
Если отладка открыта, но не работает тогда нужно писать

if (Serial.available() > 0)
  {   
    Serial.print("[DEBUG] if inner scope");
    Serial.println();
    Timer1.initialize(alle_x_minuten*60000);
    Serial.print("[DEBUG] Timer was initialized");
    Serial.println();
    Demo == true;

и смотреть в консоль дойдёт ли код до вывода. И так постепенно дойти до места в котором должен оказаться обработчик, но до которого по магическим причинам не доходит и потом расследовать эти причины. Ошибки сценария искать трудно. Только таким вод деревянным аутпутом.

Остання редакція gera_b (2017-03-10 18:22:53)

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму