Не работает библиотека TVout совместно с Wire.h и Shift595.h
- Войдите на сайт для отправки комментариев
Сб, 23/12/2017 - 23:45
Всем привет!Сломал всю голову уже...Как заставить работать все эти библиотеки вместе?В проекте используется очень много кнопок и светодиодов, для этого исполюзую расширители в виде сдвиговых регистров 74HC595(к ним подключил светодиоды), кнопки подключил к расширителю MCP23017, далее нужно подключить к ардуино телевизор проблема в следующем, по отдельности все работает( примеры с TVout.h загружаются и выводятся на телек), но стот в эти примеры добавить строки :
#include <Wire.h> #include <Shift595.h>
Формировать видеосигнал софтом - дело ресурсоемкое, нужно выдержывать временные интервалы четко. Значить остальному будет нехватать процессорного времени. Если же выделить больше времени остальной переферие то видеосигнал исказится и ТВ его не поймет. Выход - глубокое изучение характеристик видеосигнала для определения где, когда и что можна делать с переферией. Вероятно от библиотек прийдется отказатся. Ну или улучшать аппаратную часть, когда ресурсов больше жить обычно проще.
Тогда другой вопрос, если я все свои светодиоды и кнопки(без дополнительной переферии) подключу на мегу на прямую, получится ли у меня адекватно управлять кнопками и светодиодами во время работы TVout?
Dimka155, я не могу точно сказать, разрешима ли Ваша проблема в принципе. В общем случае она неразрешима. Возможно, в некоторых частных случаях скурпулезным программированием можно добиться некоторого эффекта, но Вам эта задача точно не по плечу.
Придумайте вариант, при котором эти библиотеки не нужно было бы использовать совместно. В самом крайнем случае разнесите их по разным контроллерам (правда в этом случае наладить обмен между контроллерами все равно юудет не просто).
andriano,это все я так понимаю из за прерываний которые использует TVout?если я уйду от библиотек путем замены контроллера с уно, на мегу, тогда не придется использовать расширители и соответственно эти библиотеки,получится ли у меня тогда при этом использовать millis?
Dimka155, использовать millis() у Вас, я недеюсь, получится (хотя, кто Вас знает?), но вот удастся ли Вам при этом добитья желаемого - сказать не могу. Если у Вас нет Меги, попытайтесь потренироваться с меньшим количеством кнопок и светодиодов. Если не получится, а Меге не стоит и думать, а если получится - Вам станет уже гораздо более понятно, сможете ли Вы полученный опыт обобщить на Мегу.
PS. Кстати, откуда такое упорное желание использовать именно TVOut? Я на нее посмотрел и решил, что ее можно воспринимать лишь как курьез, но никак не в качестве основы для серьезного проекта. IMHO
andriano, почему TVout, потому что аналогов вывода на экран изображения я не нашел...
Ну, микроконтроллер как бы вообще не предназначен для работы с экраном. Т.е. по-хорошему: либо воспользоваться другой платформой (например, Raspberry Pi), либо использовать отдельный специализированный (аппаратный) контроллер дисплея (как обычно и поступают в большинстве проектов на Ардуино).