Воскресенье, 24.11.2024, 10:59
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | AVR: Библиотека вывода изображения на телевизор v 1.0 - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ВитГо  
AVR: Библиотека вывода изображения на телевизор v 1.0
ВитГоДата: Вторник, 04.09.2012, 20:06 | Сообщение # 1
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Первая версия библиотеки генерации видеоизображения на телевизор: avr-tv

Схема устройства в каталоге avrtv_lib/doc архива


Прошивка написана в AVR Studio 4.19


Виталий (аka ВитГо)
 
ВитГоДата: Вторник, 04.09.2012, 20:26 | Сообщение # 2
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Характеристики модуля версии 1.0

Количество символов в строке 44
Количество строк на экране 28

Формат кадра:
Длительность строчного СИ - 4.625 мкс
Длительность строки изображения - 64 мкс
Пауза от окончания строчного СИ до выдачи строки изображения - около 9 мкс

Изображение формируется двумя одинаковыми полукадрами с 288 активными строками изображения из которых 224 используются для вывода изображения и 34 строки используются для рамки сверху и снизу


Виталий (аka ВитГо)
 
ВитГоДата: Вторник, 04.09.2012, 20:44 | Сообщение # 3
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: 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
Репутация: 20
Статус: Offline
Какие подпрограммы для вывода есть смотрите в модуле lib_avrtv_prim.asm

там же указаны входные параметры подпрограмм

никаких действий кроме инициализации модуль не требует
достаточно выполнять процедуру
call AVRTV_INIT ; инициализация библиотеки AVR-TV

и включается генерация видеоизображения


Виталий (аka ВитГо)
 
pupkinДата: Суббота, 24.11.2012, 19:27 | Сообщение # 5
Сержант
Группа: Проверенные
Сообщений: 36
Репутация: 0
Статус: Offline
на Си нету??? сделал бы на Си. в инете нету нормального материала.. а у тебя будет. считай уникальный контент +10-20 посетителей, которые хотят мк к телеку подключить)
 
ВитГоДата: Суббота, 24.11.2012, 20:40 | Сообщение # 6
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
я просто больше ассемблер для AVR люблю biggrin

создавайте тему в разделе Разрабатываю, подумаем вместе..

вообще с СИ нужно будет наверное немного по другому писать... уж больно импульсы кадровой синхронизации короткие нужны, выбирать как на асме из массива может не получиться...

можно попробовать написать на СИ с вставками ассемблера в критических местах - это наверное было бы самым лучшим решением

в вашем коде не увидел вызовов void longsi(void) и void shortsi(unsigned int last_p)


Виталий (аka ВитГо)
 
pupkinДата: Четверг, 21.11.2013, 19:21 | Сообщение # 7
Сержант
Группа: Проверенные
Сообщений: 36
Репутация: 0
Статус: Offline
Вообщем подключил к atmega32 ( PDIP ) на беспаечной макетной плате. По изображению ходит черный прямоугольник) Если каким то образом перевернуть плату, то изображение стабилизируется, но малейшее движение - обратно...

Если коснуться любого порта пальцем(влажный), то изображение пропадает. Если коснуться программатора (контакты усб и прочее) - тоже пропадает...

Подключил по схеме в первом посте...

Вот видео
http://www.youtube.com/watch?v=Tj7z6-GHeRA


Сообщение отредактировал pupkin - Четверг, 21.11.2013, 19:21
 
ВитГоДата: Пятница, 22.11.2013, 05:20 | Сообщение # 8
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
гм.. ну беспаечная плата одним словом - видно где то плохой контакт..

а так вывод вроде правильный - там дамп памяти выводиться...


Виталий (аka ВитГо)
 
pupkinДата: Пятница, 22.11.2013, 08:17 | Сообщение # 9
Сержант
Группа: Проверенные
Сообщений: 36
Репутация: 0
Статус: Offline
Это с наводками связяано... dry
 
ВитГоДата: Пятница, 22.11.2013, 15:28 | Сообщение # 10
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
и с наводками и возможно с емкостью беспаечной платы...

Виталий (аka ВитГо)
 
pupkinДата: Среда, 27.11.2013, 22:13 | Сообщение # 11
Сержант
Группа: Проверенные
Сообщений: 36
Репутация: 0
Статус: Offline
Вы случаем не делали отрисовку пикселя в определенных координатах...

Сообщение отредактировал pupkin - Среда, 27.11.2013, 22:14
 
ВитГоДата: Четверг, 28.11.2013, 05:52 | Сообщение # 12
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
да ни вопрос... это тоже легко реализуется...
главное понять где хранить образ экрана (битовый)...

какое разрешение вам нужно ?


Виталий (аka ВитГо)
 
pupkinДата: Четверг, 28.11.2013, 07:41 | Сообщение # 13
Сержант
Группа: Проверенные
Сообщений: 36
Репутация: 0
Статус: Offline
ну сколько из atmega32 можно выжать ?
Можно вместо символов хранить
 
ВитГоДата: Суббота, 30.11.2013, 10:00 | Сообщение # 14
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
ну считай сам:
озу 32ой меги -2 кб..
это 16384 точки... (один бит=одному пискелю)

теперь посчитай сколько точек на экране тебе нужно...

например при 100 на 160 точек это 16000 точек..
ну а остальное уйдет на стек да переменные

вот вам и все разрешение :-(
меньше чем у спектрума, да еще в монохроме..


Виталий (аka ВитГо)
 
ВитГоДата: Понедельник, 17.11.2014, 19:48 | Сообщение # 15
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
еще одна хорошая статья

http://we.easyelectronics.ru/STM32....ya.html


Виталий (аka ВитГо)
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz