Не работает библиотека TVout совместно с Wire.h и Shift595.h

Dimka155
Offline
Зарегистрирован: 23.12.2017

Всем привет!Сломал всю голову уже...Как заставить работать все эти библиотеки вместе?В проекте используется очень много кнопок и светодиодов, для этого исполюзую расширители в виде сдвиговых регистров 74HC595(к ним подключил светодиоды), кнопки подключил к расширителю MCP23017, далее нужно подключить к ардуино телевизор проблема в следующем, по отдельности все работает( примеры с TVout.h загружаются и выводятся на телек), но стот в эти примеры добавить строки :

#include <Wire.h>
#include <Shift595.h>

Как на экране пропадает изображение, при этом ошибок при компилляции не возникает.Как подружить TVout с этими библиотеками?

Logik
Offline
Зарегистрирован: 05.08.2014

Формировать видеосигнал софтом - дело ресурсоемкое, нужно выдержывать временные интервалы четко.  Значить остальному будет нехватать процессорного времени. Если же выделить больше времени остальной переферие то видеосигнал исказится и ТВ его не поймет. Выход - глубокое изучение характеристик видеосигнала для определения где, когда  и что можна делать с переферией. Вероятно от библиотек прийдется отказатся. Ну или улучшать аппаратную часть, когда ресурсов больше жить обычно проще.

Dimka155
Offline
Зарегистрирован: 23.12.2017

Тогда другой вопрос, если я все свои светодиоды и кнопки(без дополнительной переферии) подключу на мегу на прямую, получится ли у меня адекватно управлять кнопками и светодиодами во время работы TVout? 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Dimka155, я не могу точно сказать, разрешима ли Ваша проблема в принципе. В общем случае она неразрешима. Возможно, в некоторых частных случаях скурпулезным программированием можно добиться некоторого эффекта, но Вам эта задача точно не по плечу. 

Придумайте вариант, при котором эти библиотеки не нужно было бы использовать совместно. В самом крайнем случае разнесите их по разным контроллерам (правда в этом случае наладить обмен между контроллерами все равно юудет не просто).

Dimka155
Offline
Зарегистрирован: 23.12.2017

andriano,это все я так понимаю из за прерываний которые использует TVout?если я уйду от библиотек путем замены контроллера с уно, на мегу, тогда не придется использовать расширители и соответственно эти библиотеки,получится ли у меня тогда при этом использовать millis?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Dimka155, использовать millis() у Вас, я недеюсь, получится (хотя, кто Вас знает?), но вот удастся ли Вам при этом добитья желаемого - сказать не могу. Если у Вас нет Меги, попытайтесь потренироваться с меньшим количеством кнопок и светодиодов. Если не получится, а Меге не стоит и думать, а если получится - Вам станет уже гораздо более понятно, сможете ли Вы полученный опыт обобщить на Мегу.

 

PS. Кстати, откуда такое упорное желание использовать именно TVOut? Я на нее посмотрел и решил, что ее можно воспринимать лишь как курьез, но никак не в качестве основы для серьезного проекта. IMHO

Dimka155
Offline
Зарегистрирован: 23.12.2017

andriano, почему TVout, потому что аналогов вывода на экран изображения я не нашел...

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ну, микроконтроллер как бы вообще не предназначен для работы с экраном. Т.е. по-хорошему: либо воспользоваться другой платформой (например, Raspberry Pi), либо использовать отдельный специализированный (аппаратный) контроллер дисплея (как обычно и поступают в большинстве проектов на Ардуино).