MegaD-328 и энкодер
Re: MegaD-328 и энкодер
Мои исходники: собрано на Ардуино, Фюзы low_fuse:0x7f, high_fuse:0xdf; Комп i5, через роутер подключено кабелем. остальные настройки те же, но при вращении енкодера шим меняется в разные стороны. А Net у меня не работает вообще и на других портах (думал может через фьюзы). 10000 - это количество милисек для отсеивания дребезга? а что тогда 0,05?
Re: MegaD-328 и энкодер
vgolinsky
NetAction должен работать. У меня работает и я не получал сообщений о проблемах в этой части.
Фьюзы никак не влияют на работу NetAction напрямую. А вот по поводу ваших установок не уверен.
Скажите, если пинговать ваше устройство, каково среднее время отклика? У меня 1.20 мс.
i5 более чем достаточно.
Приведенные параметры - это не то, чтобы защита от дребезга, это попытка алгоритма в сложных и нетипичных условиях понять что именно происходит.
NetAction должен работать. У меня работает и я не получал сообщений о проблемах в этой части.
Фьюзы никак не влияют на работу NetAction напрямую. А вот по поводу ваших установок не уверен.
Скажите, если пинговать ваше устройство, каково среднее время отклика? У меня 1.20 мс.
i5 более чем достаточно.
Приведенные параметры - это не то, чтобы защита от дребезга, это попытка алгоритма в сложных и нетипичных условиях понять что именно происходит.
Re: MegaD-328 и энкодер
пинг макс 2 мсек. В прошивке перед компиляцией изменил только timeout.h 16 MHz вместо 12.5 MHz enc28j60.c 16 MHz вместо 12.5 Остальное не трогал. DHT естественно не работает. Все остальное работает нормально (кроме поля Net - не запускает скрипт) Прошивка последняя. В прикрепленном файле лог энкодера.
- Вложения
-
- log.rar
- (1.07 КБ) 246 скачиваний
Re: MegaD-328 и энкодер
Andrey_B, а Вы не запускали DHT под МегаД с тактированием от внешнего кварца? хотелось бы запустить, но не хочется паять провод от енс... а какие задержки ставить я не знаю
Re: MegaD-328 и энкодер
vgolinsky, а почему вы пишете, что DHT "естественно не работает"?
_delay_ms() и _delay_us() должны работать исходя из вашей частоты F_CPU.
Основной таймер также устанавливается из F_CPU. Тут мне пока не очень понятно, в чем дело.
Мне также совсем непонятно, почему на вашем Arduino не работает NetAction. Он не работает всегда или только если прописан сервер и основной скрипт? А светодиод активности моргает?
Ну а по энкодеру ничего определенного посоветовать не могу. Причина может быть связана с выше обозначенными проблемами, а может быть и не связана.
Такой как у вас энкодер поблизости нигде не нашел. Есть что-то похожее китайское, но не один в один. Куплю и попробую. А вы не пробовали что-нибудь фирменное типа Bourns?
_delay_ms() и _delay_us() должны работать исходя из вашей частоты F_CPU.
Основной таймер также устанавливается из F_CPU. Тут мне пока не очень понятно, в чем дело.
Мне также совсем непонятно, почему на вашем Arduino не работает NetAction. Он не работает всегда или только если прописан сервер и основной скрипт? А светодиод активности моргает?
Ну а по энкодеру ничего определенного посоветовать не могу. Причина может быть связана с выше обозначенными проблемами, а может быть и не связана.
Такой как у вас энкодер поблизости нигде не нашел. Есть что-то похожее китайское, но не один в один. Куплю и попробую. А вы не пробовали что-нибудь фирменное типа Bourns?
Re: MegaD-328 и энкодер
F_CPU у меня 16 МГц, dht показывает нули. Просто странно, что все работает кроме dht и net. а на каком порту у вас светодиод активности? (на ардуино вроде на 13 пине (PB5)) сегодня попробую другой энкодер, хотя я и медленно вращал, и подключал две тактовые кнопки и имитировал нажатием - все равно не работает. Может из-за того что подключен через оптрон (РС817) ? Но если просто нажатие кнопки in работает, то дело не в оптроне?
Re: MegaD-328 и энкодер
vgolinsky, вот в том то и дело, что код должен работать при любом значении F_CPU.
Светодиод активности можно проконтролировать и на разъеме RJ-45 (если он ими снабжен). То есть необходимо понять - это пакет не отправляется или просто не доходит.
Светодиод активности можно проконтролировать и на разъеме RJ-45 (если он ими снабжен). То есть необходимо понять - это пакет не отправляется или просто не доходит.
Re: MegaD-328 и энкодер
светодиод активности моргает и когда через основной скрипт, и когда через Net, но работает только основной. только когда через основной скрипт на одно нажатие - одно моргание, то через Net морганий несколько на одно нажатие
Re: MegaD-328 и энкодер
vgolinsky, а что у вас вообще-то прописано в Net?
Если светодиод моргает, значит устройство пытается что-то отправить.
Лучше всего подключить устройство напрямую к компьютеру и посмотреть сетевой траффик. Тогда и станет понятно что происходит.
Если светодиод моргает, значит устройство пытается что-то отправить.
Лучше всего подключить устройство напрямую к компьютеру и посмотреть сетевой траффик. Тогда и станет понятно что происходит.
Re: MegaD-328 и энкодер
в Net прописано ip server/skript.php (192.168.0.2/megad.php) просто не понятно, почему на основной скрипт все проходит, а на тот что в Net нет?
Re: MegaD-328 и энкодер
Можно сколько угодно спрашивать себя "почему", но это не даст ответа.
1. Подключите ваше устройство непосредственно к 192.168.0.2. Напрямую. И проверьте - вызывается скрипт или нет. Кстати, как вы определяете? По логам?
2. Если скрипт не вызывается (по логам Web-сервера), тогда смотрите TCP-траффик.
Только это позволит нам приблизиться к ответу и дать необходимую информацию.
1. Подключите ваше устройство непосредственно к 192.168.0.2. Напрямую. И проверьте - вызывается скрипт или нет. Кстати, как вы определяете? По логам?
2. Если скрипт не вызывается (по логам Web-сервера), тогда смотрите TCP-траффик.
Только это позволит нам приблизиться к ответу и дать необходимую информацию.
Re: MegaD-328 и энкодер
Спасибо, буду искать... при просмотре во время вызова скрипта с Net через TCPView пишет LAST_ACK Удаленная сторона отключилась, затем сокет закрыт; ожидание подтверждения.
Re: MegaD-328 и энкодер
vgolinsky, это могут быть пакеты завершения соединения по основному скрипту.
Вам нужно сделать так.
Подключить к компьютеру напрямую.
Удалить из настроек адрес сервера и шлюза, а в NetAction прописать адрес компьютера.
После этого уже смотреть через TCPView и лог Web-сервера.
Вам нужно сделать так.
Подключить к компьютеру напрямую.
Удалить из настроек адрес сервера и шлюза, а в NetAction прописать адрес компьютера.
После этого уже смотреть через TCPView и лог Web-сервера.