Конфликт spi и serial (usb uart)
- Войдите на сайт для отправки комментариев
Ср, 06/06/2018 - 23:27
Всем привет! Программа читает данные из игры и шлет в ардуинку (мега 328), мк ловит нужный пакет данных и дергает ногами как надо.
Появилась необходимость добавить дисплей (12864 на st7920). Подключил отдельно по spi, написал все что там необходимо, все работает.
Но когда объединяю скетчи, на дисплей инфа выводится нормально, но остальными ногами (из основного кода) начинает хаотично дергать.
Получается когда идут данные по spi в основном порту сыпется мусор.
пробовал spi на другие ноги (хардварные ноги меги заняты, на них не пробовал. либа u8glib.
подскажите куда копать. спасибо.
п.с. пишу с телефона, код смогу приложить позже
Без кода разговаривать бессмысленно. Мой ХШ подсказывает, что дело скорее всего не в конфликте, а в неудвчном обьединении скетчей. Но ХШ - инструмент неточный :)
пока Клапа занимаеца общественными работами, я смарю, тут многие опять себе ХШ отрастили...
Ну как минимум ONOFF_PIN занимает ногу, которую юзает аппаратный SPI на Uno, а именно ногу MISO (пин 12).
Ну как минимум ONOFF_PIN занимает ногу, которую юзает аппаратный SPI на Uno, а именно ногу MISO (пин 12).
у меня мега 2560, но аппаратными ногами spi я пользуюсь для светодиодов, а дисплей через софтварный spi висит на 8,9,10 пинах.
или хардварные ноги трогать нельзя, если я использую софтвар?
у меня мега 2560, но аппаратными ногами spi я пользуюсь для светодиодов, а дисплей через софтварный spi висит на 8,9,10 пинах.
А почему не наоборот? И может я плохо гляжу, но что-то я в скетче никаких светодиодов не вижу.
Ну как минимум ONOFF_PIN занимает ногу, которую юзает аппаратный SPI на Uno, а именно ногу MISO (пин 12).
у меня мега 2560, но аппаратными ногами spi я пользуюсь для светодиодов, а дисплей через софтварный spi висит на 8,9,10 пинах.
или хардварные ноги трогать нельзя, если я использую софтвар?
Посмотри, какие таймеры юзает серво, и проследи, чтобы эти таймеры не были завязаны на те же ноги, на которых висит дисплей. И вопрос: зачем тебе медленный softSPI для дисплея (который и так небыстрый), если у тебя искаропки есть аппаратный SPI? Интересный такой вопрос, знаешь ли ;)
Ну как минимум ONOFF_PIN занимает ногу, которую юзает аппаратный SPI на Uno, а именно ногу MISO (пин 12).
у меня мега 2560, но аппаратными ногами spi я пользуюсь для светодиодов, а дисплей через софтварный spi висит на 8,9,10 пинах.
или хардварные ноги трогать нельзя, если я использую софтвар?
Посмотри, какие таймеры юзает серво, и проследи, чтобы эти таймеры не были завязаны на те же ноги, на которых висит дисплей. И вопрос: зачем тебе медленный softSPI для дисплея (который и так небыстрый), если у тебя искаропки есть аппаратный SPI? Интересный такой вопрос, знаешь ли ;)
изначально уже распаяна плата под все эти дела, а потом уже решили добавить дисплей, переделывать с нуля так себе дело...
насчет скорости не важно абсолютно, инфа обновляется раз в 5+ минут.
как проверить тамеры где какие?
как проверить тамеры где какие?
Юзаешь библиотеку Servo? Читай: https://www.arduino.cc/en/Reference/servo
как проверить тамеры где какие?
Юзаешь библиотеку Servo? Читай: https://www.arduino.cc/en/Reference/servo
спасибо, прочел.. 9,10 нога отключается шим... (это не мой случай)
в меге без потерь ног до 12 серво, у меня 4 штуки...
но я подключал spi и на 2-3-4 и на 5-6-7, симптомы точно такие
как проверить тамеры где какие?
Юзаешь библиотеку Servo? Читай: https://www.arduino.cc/en/Reference/servo
спасибо, прочел.. 9,10 нога отключается шим... (это не мой случай)
в меге без потерь ног до 12 серво, у меня 4 штуки...
но я подключал spi и на 2-3-4 и на 5-6-7, симптомы точно такие
Попробуй просто - отключи пока в коде все сервы, и посмотри - будет ли чего странного твориться.
Оключал все сервы, менял на хардварные выводы - не помогло.
Библиотеки не правил и не разбирался - проект не терпит, время поджало.
Предположу из той инфы, что вычитал, нужно копать и объединять библиотеки spi и u8glib..
всем спасибо за ответы!