Я промониторил порт и выбрал значения при которых программа не должна входить в ветвление.
А увелечения и уменьшения проверяемых значений совершенно не измеяли работу программы.
Перепроверил схему пару раз, проверил датчики на UNO и там все работало.
Тоесть при проверке у меня там вместо показаний датчика просто 0(ноль)!?
не обязательно. Но если показания датчика менее 200, то далее программа попадает в цикл FOR. который исполняется 25 сек (как минимум), в течении которых вы сенсор больше не считываете
Реальные показания просто были около 700 и цикл даже не должен был запускаться
забавная логика - если он все-таки запускается, значит контроллер работает неверно? :)
Вам не приходит в голову, что в этой ситуации вероятность того, что у вас реальные показания вовсе не 700 - куда как больше, чем вероятность ошибки в кристалле
Я собственно и не говорю что проблема именно в кристале.
Однако рядом стоял датчик подключенный к УНО и мониторинг порта был запущен то примерно такие значения были. Перепробовал пару штук поменять, менял местами и результат тот же.
Вот и решил написать в форум, может хоть тут подскажете что делаю не так
Вот и решил написать в форум, может хоть тут подскажете что делаю не так
еще раз - упростите код до предела, выкиньте из него цикл плавной регулировки яркости. Сделайте просто - если сигнал с датчика менее 200 единиц - диод горит, более - потушен. И тестируйте.
Я промониторил порт и выбрал значения при которых программа не должна входить в ветвление.
А увелечения и уменьшения проверяемых значений совершенно не измеяли работу программы.
Перепроверил схему пару раз, проверил датчики на UNO и там все работало.
А почему вы решили что if не срабатывает?
глядя на код - думаю для ТС невдомек, что у него сигнал с сенсора читается только раз в полминуты, а все остальное время система "висит".
вот ему и кажется, что у него условие не срабатывает :)
Добавка: полминуты - это еще при условии, что тактирование на Тиньке правильно настроено. А то может и еще в несколько раз реже...
Тоесть при проверке у меня там вместо показаний датчика просто 0(ноль)!?
Тоесть при проверке у меня там вместо показаний датчика просто 0(ноль)!?
не обязательно. Но если показания датчика менее 200, то далее программа попадает в цикл FOR. который исполняется 25 сек (как минимум), в течении которых вы сенсор больше не считываете
кстати, интересный вопрос - у вас правда яркость светодиода плавно меняется? - вообще-то с вашим кодом не должна...
Попробуйте выкинуть цикл плавного изменения яркости и вставьте просто зажигание светодиода по условию - будет ясно, срабатывает оно или нет.
После попадания в for мне уже и не нужно считывать сенсор.
Реальные показания просто были около 700 и цикл даже не должен был запускаться
Да, светодиод зажигался плавно. А почему не должно?
я правда не уверен что он был именно на втором порту.
Реальные показания просто были около 700 и цикл даже не должен был запускаться
забавная логика - если он все-таки запускается, значит контроллер работает неверно? :)
Вам не приходит в голову, что в этой ситуации вероятность того, что у вас реальные показания вовсе не 700 - куда как больше, чем вероятность ошибки в кристалле
Да, светодиод зажигался плавно. А почему не должно?
я правда не уверен что он был именно на втором порту.
вот именно поэтому. Зажигаться плавно на Аттини85 он мог только на портах 0 и 1
Я собственно и не говорю что проблема именно в кристале.
Однако рядом стоял датчик подключенный к УНО и мониторинг порта был запущен то примерно такие значения были. Перепробовал пару штук поменять, менял местами и результат тот же.
Вот и решил написать в форум, может хоть тут подскажете что делаю не так
Согласен, это я тут не тот порт прописал, на деле все правильно.
Вот и решил написать в форум, может хоть тут подскажете что делаю не так
еще раз - упростите код до предела, выкиньте из него цикл плавной регулировки яркости. Сделайте просто - если сигнал с датчика менее 200 единиц - диод горит, более - потушен. И тестируйте.
Обязательно попробую =)