Я уже перестал понимать к чему это. К #42 или к #44?
Но, в любом случае повторю второй раз (третий раз повторять не буду, просто буду игнорировать Ваши вопросы). Если Вы хотите задать вопрос, приводите скетч полностью, чтобы его можно было просто взять и запустить без дописывания и/или удаления чего-либо. Если будете приводить огрызки, ответов от меня больше не будет никаких.
Я прекрасно понимаю Вас, но данный скетч у Вас не получится просто так запустить. Он же привязан жестко к определенной аппаратной базе. Конечно при инициализации устройств идет проверка на их работоспособность, но если устройства нет, то и ЕГО часть скетча ес-но и вызываться не будет. Программа не зависнет, просто скажет, что работать не с чем - гудбай.
процедуры pinMode и digitalWrite не работают, т.е. ВООБЩЕ ничего не происходит. Пин так и остается INPUT.
И что я должен думать? Вы создавали экземпляр этого класса или не создавали? Если нет, то конструктор и не должен был работать. Если создавали, то как? Когда? Мне всё это из Вас клещами тянуть? Или самому придумывать как бы я сделал? Так у меня заработает - проблема-то у Вас, а не у меня.
starcomputer пишет:
И как выложить скетч из 12-ти файлов ?
Ну, в принципе так же, как и из одного, только смысла в этом нет никакого, абсолютно. В нём никто не станет разбираться. Если у Вас есть проблема. Вы должны специально подготовить маленький, минимально возможный скетч, который эту проблему демонстрирует и выложить его. Но его (маленький скетч) выложить полностью. Только так у Вас есть шанс получить вразумительный ответ.
Ну, в принципе так же, как и из одного, только смысла в этом нет никакого, абсолютно. В нём никто не станет разбираться. Если у Вас есть проблема. Вы должны специально подготовить маленький, минимально возможный скетч, который эту проблему демонстрирует и выложить его. Но его (маленький скетч) выложить полностью. Только так у Вас есть шанс получить вразумительный ответ.
И что я должен думать? Вы создавали экземпляр этого класса или не создавали? Если нет, то конструктор и не должен был работать. Если создавали, то как? Когда? Мне всё это из Вас клещами тянуть? Или самому придумывать как бы я сделал? Так у меня заработает - проблема-то у Вас, а не у меня.
Конечно создавал. Иначе откуда бы я знал, что там на пине происходит. Осцилограф и показал, что НИЧЕГО не происходит.
Но я так понял, что это из-за того, что класс глобальный.
так для того чтоб написать "маленький, но полный скетч", демонстрирующий проблему - надо пониматьв чем проблема состоит :)
Это тоже верно. Если у Вас пин порта должен аппаратно сбрасывает другой чип, а он его не сбрасывает, то вариантов несколько:
1. Неправильно написанная программа.
2. Нерабочий чип.
3. В даташите чипа неверно указаны временные задержки.
4. Временные задержки по каким-то причинам не соответствуют расчетным. Даже если в качестве задержки используется команда NOP процессора без цикла, то иногда время ее выполнения - один такт - не соответствует даташиту на процессор - я с таким сталкивался на Atmega88.
Если подумать, можно еще найти возможные причины. Так что действительно, определение проблемы это половина ее решения.
Красиво и правильно написанная программа не всегда будет правильно работать с "железом".
В данном скетче часть, выделенная комментариями // сброс чипа НС-05 ..... // не выполняется. Хотелось бы знать почему ...
Что при создании класса нельзя выполнять какие-то процедуры ?
.............
Пищалка там, чтобы понимать, что инициализация не зависла.
Да, я увидел :( Только не нужно думать, что в программе он не создается (хотя ЧТО Вы еще можете подумать ...:().
Пытался воссоздать все на МАЛЕНЬКОМ скетче.
Работать-то оно может и будет, но глючно и криво и может перестать работать без видимых причин, например, при добавлении совершенно посторонней переменной в программу.
Подсказка. Вы на глобальном уровне передаёте в конструктор ссылку на Serial1 (неясно зачем, т.к. внутри Вы ссылкой не пользуетесь, а тупо берёте указатель). А Вы уверены, что к этому моменту он (Serial1) уже существует?
Нет, это значит, что проблема совсем не том, о чём Вы думаете. Вы не ищете ошибку. Вы её уже "назначили". А её там не оказалось. Теперь у Вас размер скетча виноват. На самом деле, просто ошибка в другом.
Берите большой скетч и выбрасывайте из него куски, пока проблема не исчезнет. Как исчезнет, смотрите при выбрасывании чего она исчезла и сделайте маленький скетч.
У тя область видимости класса XXX скорее всего, глобальная
Да, глобальная.
Весь класс целиком. Рабочий.
Я уже перестал понимать к чему это. К #42 или к #44?
Но, в любом случае повторю второй раз (третий раз повторять не буду, просто буду игнорировать Ваши вопросы). Если Вы хотите задать вопрос, приводите скетч полностью, чтобы его можно было просто взять и запустить без дописывания и/или удаления чего-либо. Если будете приводить огрызки, ответов от меня больше не будет никаких.
Я прекрасно понимаю Вас, но данный скетч у Вас не получится просто так запустить. Он же привязан жестко к определенной аппаратной базе. Конечно при инициализации устройств идет проверка на их работоспособность, но если устройства нет, то и ЕГО часть скетча ес-но и вызываться не будет. Программа не зависнет, просто скажет, что работать не с чем - гудбай.
И как выложить скетч из 12-ти файлов ?
Схема контроллера, если интересно конечно:
Я прекрасно понимаю Вас, но данный скетч у Вас не получится просто так запустить.
Ни хрена Вы не понимаете. Это не Ваше дело, получится у меня его запустить или нет, скетч должет быть полным.
Вот, например, Вы задали вопрос
процедуры pinMode и digitalWrite не работают, т.е. ВООБЩЕ ничего не происходит. Пин так и остается INPUT.
И что я должен думать? Вы создавали экземпляр этого класса или не создавали? Если нет, то конструктор и не должен был работать. Если создавали, то как? Когда? Мне всё это из Вас клещами тянуть? Или самому придумывать как бы я сделал? Так у меня заработает - проблема-то у Вас, а не у меня.
И как выложить скетч из 12-ти файлов ?
Ну, в принципе так же, как и из одного, только смысла в этом нет никакого, абсолютно. В нём никто не станет разбираться. Если у Вас есть проблема. Вы должны специально подготовить маленький, минимально возможный скетч, который эту проблему демонстрирует и выложить его. Но его (маленький скетч) выложить полностью. Только так у Вас есть шанс получить вразумительный ответ.
Ну, в принципе так же, как и из одного, только смысла в этом нет никакого, абсолютно. В нём никто не станет разбираться. Если у Вас есть проблема. Вы должны специально подготовить маленький, минимально возможный скетч, который эту проблему демонстрирует и выложить его. Но его (маленький скетч) выложить полностью. Только так у Вас есть шанс получить вразумительный ответ.
Спасибо, я так далее и буду делать.
И что я должен думать? Вы создавали экземпляр этого класса или не создавали? Если нет, то конструктор и не должен был работать. Если создавали, то как? Когда? Мне всё это из Вас клещами тянуть? Или самому придумывать как бы я сделал? Так у меня заработает - проблема-то у Вас, а не у меня.
Конечно создавал. Иначе откуда бы я знал, что там на пине происходит. Осцилограф и показал, что НИЧЕГО не происходит.
Но я так понял, что это из-за того, что класс глобальный.
это из-за того, что класс глобальный.
вы видите хоть какой-то смысл в этой фразе? :)
У тя область видимости класса XXX скорее всего, глобальная
Мне как, верить всему, что здесь пишут, или выборочно ? Если выборочно, то по какому принципу ?
А ну да. Видимость класса глобальная, а не класс. Сорри.
А ну да. Видимость класса глобальная, а не класс. Сорри.
ну а вывод то из этого какой? :)
Мне как, верить всему, что здесь пишут, или выборочно ?
Верить или не верить можно в Бога. Всё остальное нужно осмысливать и, как минимум, понимать.
Конечно создавал.
Вот-вот. Как создавали, когда создавали, сколько штук создавали - ответы на все эти вопросы - ХЗ. Ну и ответ на Ваш основной вопрос - тоже ХЗ!
Так что либо маленький, но полный скетч, либо разбирайтесь сами.
Так что либо маленький, но полный скетч, либо разбирайтесь сами.
так для того чтоб написать "маленький, но полный скетч", демонстрирующий проблему - надо пониматьв чем проблема состоит :)
Да, я Вас понял.
так для того чтоб написать "маленький, но полный скетч", демонстрирующий проблему - надо пониматьв чем проблема состоит :)
Это тоже верно. Если у Вас пин порта должен аппаратно сбрасывает другой чип, а он его не сбрасывает, то вариантов несколько:
1. Неправильно написанная программа.
2. Нерабочий чип.
3. В даташите чипа неверно указаны временные задержки.
4. Временные задержки по каким-то причинам не соответствуют расчетным. Даже если в качестве задержки используется команда NOP процессора без цикла, то иногда время ее выполнения - один такт - не соответствует даташиту на процессор - я с таким сталкивался на Atmega88.
Если подумать, можно еще найти возможные причины. Так что действительно, определение проблемы это половина ее решения.
Красиво и правильно написанная программа не всегда будет правильно работать с "железом".
Красиво и правильно написанная программа не всегда будет правильно работать с "железом".
однако если она правильная - это сильно облегчит поиск ошибки.
Чего не скажешь про ваш код
В данном случае - что мешает вам написать тестовый скетсч из 15-20 строчек с вашим "глобальным классом" из пары операторов?
А я этим как раз и занимался :)
В данном скетче часть, выделенная комментариями // сброс чипа НС-05 ..... // не выполняется. Хотелось бы знать почему ...
Что при создании класса нельзя выполнять какие-то процедуры ?
.............
Пищалка там, чтобы понимать, что инициализация не зависла.
В данном скетче часть, выделенная комментариями // сброс чипа НС-05 ..... // не выполняется. Хотелось бы знать почему ...
а с чего ей выполнятся?
а где в вашем коде создание экземпляра класса - укажите номер строки?
Смотрю вот на это:
и вот на это:
Вы создавали экземпляр этого класса или не создавали?
Конечно создавал.
и не могу понять, где создавали? В другой жизни?
Да, я увидел :( Только не нужно думать, что в программе он не создается (хотя ЧТО Вы еще можете подумать ...:().
Пытался воссоздать все на МАЛЕНЬКОМ скетче.
В одном файле все работает. В двух - нет.
Блин, ладно я дурак. И в двух работает.
Ну значит на маленьком скетче не поймешь :(
Ищите другие ошибки.
Еще раз повторю - не по горбу ношу взяли, если вы такой элементарной вещи, как создание экземпляра не понимаете - - начните с чего попроще.
Потому что include с конструктором стоит ниже. стр 16.
Да работает оно. Я не могу теперь понять почему в основной программе не работает.
если они описаны в другом файле?
Вы недооцениваете ТС!
Посмотрите, где у него стоит include!
starcomputer,
Работать-то оно может и будет, но глючно и криво и может перестать работать без видимых причин, например, при добавлении совершенно посторонней переменной в программу.
Подсказка. Вы на глобальном уровне передаёте в конструктор ссылку на Serial1 (неясно зачем, т.к. внутри Вы ссылкой не пользуетесь, а тупо берёте указатель). А Вы уверены, что к этому моменту он (Serial1) уже существует?
Ну значит на маленьком скетче не поймешь :(
Нет, это значит, что проблема совсем не том, о чём Вы думаете. Вы не ищете ошибку. Вы её уже "назначили". А её там не оказалось. Теперь у Вас размер скетча виноват. На самом деле, просто ошибка в другом.
Берите большой скетч и выбрасывайте из него куски, пока проблема не исчезнет. Как исчезнет, смотрите при выбрасывании чего она исчезла и сделайте маленький скетч.
Это работа, дорогой, само ничего не делается.