МИКРОКОНТРОЛЛЕР AVR - МИКРОКОНТРОЛЛЕР AVR

Приложение выводит 268, а затем 267 строк данных (в общей сложности 535 строк) в каждом из двух полей. В конце каждого из полей выводится шесть или семь коротких строк, за которыми следует шесть импульсов вертикальной синхронизации, пять или шесть коротких строк и затем одиннадцать длинных строк, после которых начинаются данные. Это повторяется дважды для каждого полного кадра. Разница в коротких импульсах, содержащих данные должна составлять полстроки для каждого поля, чтобы заполнить экран строками, которые пропущены в предыдущем полукадре.

На рис. 37.8 приведена форма сигнала на потенциометре. Во время начала поля происходит заряд конденсатора, а во время вывода изображения меняется режим работы вывода (с вывода данных на их ввод) и происходит ожидание разряда конденсатора. Суть идеи состоит в том, чтобы вывести белое пятно на экран в точке разряда конденсатора.

Рис. 37.8. Вертикальная синхронизация полного видеосигнала AVR с интегральным чтением положения потенциометра

На самом деле, все работало не так, как планировалось. При работе приложения я обнаружил, что максимальное время разряда конденсатора, которое можно получить, составляло одну шестую от времени вывода на экран одного полукадра. Это было скомпенсировано программными средствами путем умножения величины задержки на шесть до начала вывода следующего поля. Во время вывода поля на экран производилось сравнение уже с этим новым значением, и пятно выводилось, начиная с места, в котором произошло совпадение. Это не самый оптимальный способ — если бы я стал переделывать это приложение, то лучше подобрал бы номиналы конденсатора и потенциометра так, чтобы время разряда совпадало с длительностью поля. Такое решение позволит упростить программную реализацию.

Go to Top