Ви не увійшли.
Потому что if выполняется до точки с запятой.
возможно, а может и дефектные уже с китая пришли
Если у вас 100% такой-же как на картинке, то там наблюдается преобразователь max232, вы хоть свой подключаете не через тот?
Значит Вы или ваш друг их уже ушатали. Про подключение вопрос отбрасываю. А скорость либо 9600, либо 115200, другие маловероятны.
Я думаю если бы скорость не правильная были бы крякозябы.
Неправильно думаете. Если модуль не получает команды, то и ответов он давать не будет, потому ни крякозябр ни зяброкяков Вы не увидите.
А скорости менять пробовал?
8к да, но 1
У тини85 ровно 8кб флеша.
физическая часть уже отработана, вопрос к коду, я только учусь
Учись. 8к флеша хватит с избытком под эту задачу.
Менять мусорный пакет одной рукой, а второй держать сенсорную кнопку? ))) Тебе такое ведро на голову повесят.
Там нет явного указания размера массива, иначе компилятор бы ругнулся, соответственно можно обратится к любому элементу, т.е. проблема не в массиве а где-то еще.
http://robotosha.ru/arduino/atmega128-arduino-ide-usbasp.html
https://github.com/MCUdude/MegaCore
Без маски и шелкографии (голая медь) по быстрому и качественно делает вот этот паренек https://forum.cxem.net/index.php?/topic/127686-изготовление-печатных-плат-украина/page/9/&tab=comments#comment-3242863
С маской и шелкографией Антощенко Владимир Анатольевич, цена высокая но делает мелкие партии, давно у него не заказывал, т.к. у китайцев было дешевле всего. Если что, уточню делает ли на сегодняшний день.
Есть еще http://www.plata.com.ua, когда-то у них заказывал, но цены конечно бешеные.
За монтаж не знаю, никогда не заказывал, т.к. сам умею.
Двухсторонняя? С маской и шелкографией?
У ATmega128 SPI совершенно отдельный, на выводах 10,11,12,13. То вы что-то путаете, видать.
При чем тут SPI? мега128 никогда не шилась через ноги 10, 11, 12, 13. Из них общий только CLK. MOSI и MISO же для прошивки последовательным программатором находятся на ногах 2 и 3. И на этих же ногах у меги usart.
Короче, главное что автор всё понял.
Неизвестно же куда и как он его вставляет, этот USBasp.
Как неизвестно? Именно на ноги программирования. Но на них же находится USART0 Меги128. Вот он и опасается, что при подключенном usbasp он теряет этот usart0. Я сказал что скорее нет, главное чтобы во время прошивки ничего со стороны ПК не сыпалось.
Можно ли это как-то обойти?
Не знаю как UsbAsp, а нормальные программаторы никак не мешают работе USART. По идее и у этого вне режима прошивки выставляются в 3-е состояние. Главное чтобы по usart в мк ничего не шло во время прошивки.
А какой опыт то нужен? По прерыванию считать по i2c состояние пинов и потом программно определить какой это энкодер и в какую сторону вращается? Никакого опыта не надо, и так понятно что всё будет работать, это практически ничем не отличается, что подключишь напрямую к пинам мк и будешь читать порт. логика дальнейшей обработки одинакова.
Kino, садись, пять. Герой, красаучег
Какой вопрос - такой ответ.
Kino, тогда поделитесь как Вы подключили и как обрабатываете 9 энкодеров... Вот интересно бы увидеть схемку Вашего проекта
Всмылсе как? Напрямую к пинам контроллера. )) Проще некуда.
Мне нужно еще по SPI работать с дисплеем, опрашивать DS18B20, использовать несколько аналоговых входов ATmega и управлять исполнительными устройствами.
И шо? Вот смотри, тоже три аналоговых входа, выход SPI для сдвиговых регистров для семисегментников, 35 кнопок с управляемой подсветкой, 8 тумблеров, 4 галетных переключателя, ШИМ для яркости общей подсветки, два USART на 19200 для общения с ПК и соседними платами. И при этом 9 энкодеров обрабатываются просто в общем цикле без сторонних микросхем и без единого глюка.
Просто 16Мгц это очень чем достаточно для таких задач, главное с умом написать.
пять энкодеров и пять кнопок ардуина обработает безо всяких расширителей.
Я понял, мне надо собрат свой частотный преобразователь (по принципу как на картинке), с использованием ключей и сигнала синусоиды
Нет, достаточно на один пин ардуины подать LOW, на второй HIGH, потом через задержу, поменять LOW на HIGH, а HIGH на LOW.
//цикл
{
DigitalWrite(pin1, HIGH);
DigitalWrite(pin2, LOW);
задержа
DigitalWrite(pin1, LOW);
DigitalWrite(pin2, HIGH);
задержа
}
Так им надо управлять по мостовой схеме. На один вывод + на второй -, следующий шаг наоборот.
Попробуйте подключить еще один GND (он там еще один есть) на землю и AVCC на питание.
Подсказываю. В пакете передатчика заводим переменную, постоянно инкрементируемая при каждой посылке. Передатчик при этом должен передавать постоянно. Приемником анализируйте в пакете этот байт. Если он, на протяжении какого-то времени сохраняет последнее значение, то соответственно связь потеряна и выключаем моторы и сервы.
Вариант второй. Просто после получения посылки обнуляйте массив и там не будет старых значений )). Но тут вопрос в потери реакции на команды, возможны пропуски.