AVR: Библиотека вывода изображения на телевизор v 1.0
|
|
ВитГо | Дата: Вторник, 04.09.2012, 20:06 | Сообщение # 1 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Первая версия библиотеки генерации видеоизображения на телевизор: avr-tv
Схема устройства в каталоге avrtv_lib/doc архива
Прошивка написана в AVR Studio 4.19
Виталий (аka ВитГо)
|
|
| |
ВитГо | Дата: Вторник, 04.09.2012, 20:26 | Сообщение # 2 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Характеристики модуля версии 1.0
Количество символов в строке 44 Количество строк на экране 28
Формат кадра: Длительность строчного СИ - 4.625 мкс Длительность строки изображения - 64 мкс Пауза от окончания строчного СИ до выдачи строки изображения - около 9 мкс
Изображение формируется двумя одинаковыми полукадрами с 288 активными строками изображения из которых 224 используются для вывода изображения и 34 строки используются для рамки сверху и снизу
Виталий (аka ВитГо)
|
|
| |
ВитГо | Дата: Вторник, 04.09.2012, 20:44 | Сообщение # 3 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Строение модуля:
lib_avrtv_const.asm - константы модуля, должны быть включены в вашу программу выше остальных модулей avrtv
lib_avrtv_dseg.asm - область данных, должна быть включена в область DSEG вашей программы
lib_avrtv.asm - исполняемый код модуля, должен быть включен в область CSEG вашей программы
lib_avrtv_charset.asm - знакогенератор. включается в текст программы из lib_avrtv.asm, дополнительно включать куда либо не нужно
lib_prim.asm - процедуры печати. включается в текст программы из lib_avrtv.asm, дополнительно включать куда либо не нужно
правильное подключение библиотеки: Code .include "m32def.inc" ; Используем ATMega32
.include "lib_avrtv\lib_avrtv_const.asm" ; константы модуля avr-tv ; константы модуля avr-tv должны быть включены в исходники раньше всех остальных частей
.DSEG
.include "lib_avrtv\lib_avrtv_dseg.asm" ; сегмент данных модуля avr-tv ; сегмент данных нужно включить в DSEG сегмент исходников, раньше основного модуля, ; но позже констант
.CSEG
.ORG 0x0000 rjmp START
.ORG OC1Aaddr rjmp AVRTV_OCR1A ; Прерывание AVR-TV
.ORG OC1Baddr rjmp AVRTV_OCR1B ; Прерывание AVR-TV
START: ldi R16 , low (RAMEND) ; установка стека out SPL , R16 ldi R16 , low (RAMEND) out SPH , R16
... ваша программа размещается здесь ...
main_loop: rjmp main_loop
.include "lib_avrtv\lib_avrtv.asm" ; библиотека avr-tv ; исполняемая библиотека модуля, включается в сегмент CSEG, после констант и сегмента ; данных модуля
Виталий (аka ВитГо)
|
|
| |
ВитГо | Дата: Вторник, 04.09.2012, 20:47 | Сообщение # 4 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Какие подпрограммы для вывода есть смотрите в модуле lib_avrtv_prim.asm
там же указаны входные параметры подпрограмм
никаких действий кроме инициализации модуль не требует достаточно выполнять процедуру call AVRTV_INIT ; инициализация библиотеки AVR-TV
и включается генерация видеоизображения
Виталий (аka ВитГо)
|
|
| |
pupkin | Дата: Суббота, 24.11.2012, 19:27 | Сообщение # 5 |
Сержант
Группа: Проверенные
Сообщений: 36
Статус: Offline
| на Си нету??? сделал бы на Си. в инете нету нормального материала.. а у тебя будет. считай уникальный контент +10-20 посетителей, которые хотят мк к телеку подключить)
|
|
| |
ВитГо | Дата: Суббота, 24.11.2012, 20:40 | Сообщение # 6 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| я просто больше ассемблер для AVR люблю
создавайте тему в разделе Разрабатываю, подумаем вместе..
вообще с СИ нужно будет наверное немного по другому писать... уж больно импульсы кадровой синхронизации короткие нужны, выбирать как на асме из массива может не получиться...
можно попробовать написать на СИ с вставками ассемблера в критических местах - это наверное было бы самым лучшим решением
в вашем коде не увидел вызовов void longsi(void) и void shortsi(unsigned int last_p)
Виталий (аka ВитГо)
|
|
| |
pupkin | Дата: Четверг, 21.11.2013, 19:21 | Сообщение # 7 |
Сержант
Группа: Проверенные
Сообщений: 36
Статус: Offline
| Вообщем подключил к atmega32 ( PDIP ) на беспаечной макетной плате. По изображению ходит черный прямоугольник) Если каким то образом перевернуть плату, то изображение стабилизируется, но малейшее движение - обратно...
Если коснуться любого порта пальцем(влажный), то изображение пропадает. Если коснуться программатора (контакты усб и прочее) - тоже пропадает...
Подключил по схеме в первом посте...
Вот видео http://www.youtube.com/watch?v=Tj7z6-GHeRA
Сообщение отредактировал pupkin - Четверг, 21.11.2013, 19:21 |
|
| |
ВитГо | Дата: Пятница, 22.11.2013, 05:20 | Сообщение # 8 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| гм.. ну беспаечная плата одним словом - видно где то плохой контакт..
а так вывод вроде правильный - там дамп памяти выводиться...
Виталий (аka ВитГо)
|
|
| |
pupkin | Дата: Пятница, 22.11.2013, 08:17 | Сообщение # 9 |
Сержант
Группа: Проверенные
Сообщений: 36
Статус: Offline
| Это с наводками связяано...
|
|
| |
ВитГо | Дата: Пятница, 22.11.2013, 15:28 | Сообщение # 10 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| и с наводками и возможно с емкостью беспаечной платы...
Виталий (аka ВитГо)
|
|
| |
pupkin | Дата: Среда, 27.11.2013, 22:13 | Сообщение # 11 |
Сержант
Группа: Проверенные
Сообщений: 36
Статус: Offline
| Вы случаем не делали отрисовку пикселя в определенных координатах...
Сообщение отредактировал pupkin - Среда, 27.11.2013, 22:14 |
|
| |
ВитГо | Дата: Четверг, 28.11.2013, 05:52 | Сообщение # 12 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| да ни вопрос... это тоже легко реализуется... главное понять где хранить образ экрана (битовый)...
какое разрешение вам нужно ?
Виталий (аka ВитГо)
|
|
| |
pupkin | Дата: Четверг, 28.11.2013, 07:41 | Сообщение # 13 |
Сержант
Группа: Проверенные
Сообщений: 36
Статус: Offline
| ну сколько из atmega32 можно выжать ? Можно вместо символов хранить
|
|
| |
ВитГо | Дата: Суббота, 30.11.2013, 10:00 | Сообщение # 14 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| ну считай сам: озу 32ой меги -2 кб.. это 16384 точки... (один бит=одному пискелю)
теперь посчитай сколько точек на экране тебе нужно...
например при 100 на 160 точек это 16000 точек.. ну а остальное уйдет на стек да переменные
вот вам и все разрешение :-( меньше чем у спектрума, да еще в монохроме..
Виталий (аka ВитГо)
|
|
| |
ВитГо | Дата: Понедельник, 17.11.2014, 19:48 | Сообщение # 15 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| еще одна хорошая статья
http://we.easyelectronics.ru/STM32....ya.html
Виталий (аka ВитГо)
|
|
| |