Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » ТВ выход на bascom avr


ТВ выход на bascom avr

Сообщений 181 страница 210 из 421

181

RDW написал(а):

..... Надо тему всё-таки довести до логического конца, может из этого ещё что-то путное выйдет. Какая нибудь ера гибрида между дуней и спектрума.

Я уже и сам не в терпении, в понедельник ЛУТить буду, идея выбора адреса строки таймером зацепила конкретно!
Само трудоустройство в эти развалины лежит ещё с 2012 года, тогда пошёл устраиваться, но не взяли, вот, даже в самом низу комментарий остался на память - http://www.prokstovo.info/pyatanov17.shtml
В 2014-2015 году поворот событий дал шанс устроится, но два года работы улетают в пустую из-за халтурности рабочего и управляющего персонала.

0

182

Ev3658 написал(а):

Берём по максимум

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

0

183

RDW написал(а):

....к в железе будет выглядеть по выводам (образно).

ЛУТ ща развожу, его скину, там проще будет понять.
Так то всё просто.
1 таймер, который создаёт прерывание каждой строки, вызывает событие и генерирует строчный импульс. (Выход CompareB).
2 таймер по событию генерирует кадровый импульс и заодно по нему делается запрет вывода видео данных для бордюра. (Выход CompareA)
3 таймер, которые имеет CompareA CompareB CompareC CompareD - есть такие, он по событию как и кадровый, но через каждый 255 будет включатся нужный выход Compare, получается, у нас верхний адрес аппаратно переключается.
При выводе строки останется при выводе каждого байта в USART просто прибавлять значение порта на +1. (порт нижнего адреса памяти), брать полученное значение и пихать его в регистр USART.

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

0

184

Ev3658 написал(а):

то можно и цветные буквы выводить

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

0

185

Я теперь понимаю, почему у ребят в этом проекте/продукте такое маленькое разрешение.
У меня макс на этой плисине 640х204 влезает, причем без всяких буферов, чисто логика на ней. Вся запись ведется напрямую из МК в SRAM по сигналу управляющему, в этот момент плис генерит пустой сигнал на монитор, чтобы срывов кадра не было, но информации естественно нет (ждет освобождение SRAM).
В общем когда придёт покрупнее моделька (XC95144XL), постараюсь на ней сделать всё "по феншую" (с буфером и 8-16 битной шиной обмена).

http://s8.uploads.ru/t/FwkbP.gif

Отредактировано RDW (2016-12-18 19:37:31)

0

186

Странно, у меня все строки выводится отлично, единственное, 16 мегагерц строки не совсем стандартно.
Не могу понять, а смысл в этом чипе, если синхросигналы можно выводить аппаратно без участия ЦП? Это для Mega да, но для Xmega в этой штуке необходимость отпадает.

0

187

Ev3658 написал(а):

но для Xmega в этой штуке необходимость отпадает

Я пока не знаю до конца твои коварные замыслы по захвату мира таймерами  :D , но что-то мне слабо верится, что ты какой-нить не А1 серией с EBI сможешь нормально вывести 640х480х64 цвета графики, чтобы это всё не сильно тормозило, да ещё чтобы требовало минимум портов МК.  :flirt:
Одной генерации строк и кадров - недостаточно.

0

188

Не, ну многоцветность точек тут явно не получить, если только не найти способ три USART одновременно запускать или запускать с малым смещением.
Я же выложил примеры, там всё просто, один таймер генерирует длительность строки, а другой считает строки.
У этих таймеров есть выходы "Compare", они-же и генерируют синхросигналы, это позволило освободится от всяких рассчётов и т.п.

Вот это самый главный таймер, от него и частота и всё в целом зависит:

Код:
'Config Tcd1 = Wgmode , Wgmode = Pwm , Prescale = 8 , Event_action = Restart , Comparea = Enabled , Event_delay = Enabled 'конец гориз.сигнала и вызов прерывания вывода информации
Tcd1_cca = 21                                               'начало рисования строки и кадра
Tcd1_per = 133

Типа этого достаточно, чтоб контроллер уже генерировал синхросигналы на аппаратном уровне.

Второй таймер сробатывает по событию, а событие срабатывает на переполнение таймера выше

Код:
Config Tcd0 = Wgmode , Wgmode = Pwm , Prescale = E0 , Event_source = E0 , Comparea = Enabled       'кадровый
Tcd0_cca = 1
Tcd0_ccb = 440                                                                                    'ограничение рисования
Tcd0_per = 525                                              'конец всего кадра целиком

.

Добавить третий на то-же событие и использовать выхода 4х COMPARE в первых таймерах порта, чтоб сменять адрес в памяти и тогда ни одной переменной больше 8 бит не будет в программе  :yep:

Отредактировано Ev3658 (2016-12-18 22:13:26)

0

189

Не, не будет мне никакого эксплейна к НГ, наша доблестная таможня походу завернула посылку, а покупать у наших перепродажников в 2-3 раза дороже - не собираюсь. :disappointed:
Значит не судьба с А1 и EBI поиграться, буду ковырять плис (всё равно по цене один хрен).

0

190

А я уже ЛУТанул первый блин.
http://sh.uploads.ru/t/OTiUb.jpg
http://s6.uploads.ru/t/Pm86e.jpg
Надеюсь до вечера проверю работу с какой-то памятью, выдрал и какой-то платы - IC61C256AH-12N (32K x 8 HIGH-SPEED CMOS STATIC RAM by ICSI).

0

191

Молодец какой.
А что там мало, всего лишь 32К?

0

192

Интересное видео попалось по теме VGA.

0

193

RDW написал(а):

Молодец какой.
А что там мало, всего лишь 32К?

Вот это я тупанул )))) Блин, с горяча ЛУТ кинул, первый блин всё равно комом  :rofl:

0

194

Пётр написал(а):

Интересное видео попалось по теме VGA

На армах куча видео на тему VGA.) Полезного там мало (даже непонятно какое разрешение (на глаз так 320х240), чел выложил только прошивку и плату как сделать (слепое повторение), впрочем тема не про арм.

0

195

Во-во, тема "Забивание гвоздя микроскопом"  :D
Порылся в хламе и нашол ещё одну память: LP621024DM-70LL Aliexpress 128K X 8 BIT CMOS SRAM
Ща её буду ЛУТить  :hobo:

0

196

Стой! Зачем тебе 128K?
Для:

- 640х480 нужно 307200 байт;
- 640х400 нужно 256000 байт.

Т.е. в идеале надо хотя бы на 262144 байт SRAM.

0

197

RDW написал(а):

Стой! Зачем тебе 128K?
''''''.

Адрес у этой памяти 17 битный А0-А17
Это 16*16 во второй степени = 83521 ячеек по 8 бит = 128кБ., а для разрешения 640х480 надо 38кб.

0

198

38400 - это если голый монохром, который может весьма быстро надоесть.)

0

199

Кстати, ты говорил, что после твоих экспериментов, открыл DMA очень быстро отдаёт данные и её надо тормозить. Ведь можно сделать простенький ШИМ на 8 бит, ну т.е. на 8 градаций серого или вообще забить на УАРТ и выплёвывать данные на порт, откуда можно цвета рисовать сразу.

0

200

RDW написал(а):

Кстати, ты говорил, что после твоих экспериментов, открыл DMA очень быстро отдаёт данные и её надо тормозить. Ведь можно сделать простенький ШИМ на 8 бит, ну т.е. на 8 градаций серого или вообще забить на УАРТ и выплёвывать данные на порт, откуда можно цвета рисовать сразу.

Пробовал, чего-то не хочет быстро выводить, даже таймер переключал в 8 бит. Это громадный массив данных получается, тут уже 1 точка = 8 бит, а не 8 точек=8бит.

0

201

Название дал: "VideoBit v1.0"  :jumping:
Обычно с третьего раза получается, если отладится во втором  :D
http://s5.uploads.ru/t/ZljoM.jpg

0

202

Вот ты навострился их клепать.)
У меня обычно схемы на 95% годные выходят как правило (в плане ошибок). Обычно перестраховываться пытаюсь. Если второй раз делаю, то точно чистовик (обычно до него редко доходит и так норм).

0

203

Вот, как-то так. Должно сработать.
http://s3.uploads.ru/t/r7UQ0.jpg
Есть проблема, что не успею прибавлять адрес с каждым отправленным битом, в основном теоретически должно работать.
Рассчитано на 500 строк по 255*8 точек, но, а на деле 480 строк (255+225) и максимум 80 байт.
Перед отправкой нужно порт данных с памяти перевести во вход и поставить бит для режима памяти "Чтение", обнулить адресный порт.
Между операциями отправки в Usart, нужно будет делать "Incr порт" и брать сразу с порта на вывод Usart дынные.
В бордюрах можно записывать данные или принимать по SPI для будущей записи в память в момент бордюра между 480-525 строкой.

RDW написал(а):

Вот ты навострился их клепать.)
У меня обычно схемы на 95% годные выходят как правило (в плане ошибок). Обычно перестраховываться пытаюсь. Если второй раз делаю, то точно чистовик (обычно до него редко доходит и так норм).

Да сам накосячил, в двух местах VCC и GND попутал, сам дурак )))

Отредактировано Ev3658 (2016-12-19 22:31:30)

0

204

Пока задачу можно упростить (как я у себя делал), можно вначале сделать первую версию алгоритма, когда есть два основных режима работы:

1. ОЗУ работает только на отдачу данных (на вывод видео);
2. ОЗУ запоминает данные (видео тут можно глушить).

Когда этот алгоритм почувствуешь, что возможно реализовать, то там будет видно как это всё реально сделать на лету или нет.
Я так понимаю у тебя камень не А1, всё программное будет?

0

205

Получилось!!!! Вот только одна проблема, как же запустить то от кварца, блин, это просто жесть!!!

0

206

Ты от RC разогнал чтоли?
Чтобы гнать от кварца, желательно его иметь на 2МГц, чтобы плавно обороты накручивать. Если ставить сразу 16, то шаги будут грубыми при умножении на 2.

+1

207

Пока мы тут извращаемся, народ уже давно играет. :)

0

208

И у нас будет праздник  8-)

Кварц 11,0592мГц
http://sf.uploads.ru/t/U6p0Z.jpg
http://s8.uploads.ru/t/RlJ7o.jpg

Код:
$regfile = "xm256a3def.dat"
$crystal = 44236800

$hwstack = 64
$swstack = 64
$framesize = 64


$lib "xmega.lib" : $external _xmegafix_clear : $external _xmegafix_rol_r1014
Config osc = enabled , EXTOSC = enabled , pllosc = enabled , _
range = 9MHZ_12MHZ , startup =XTAL_256CLK , pllsource = extclock, pllmul = 4,PLLDIV2=disabled
Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1




'отладочная индикация
Led Alias Portd.7
Config Led = Output

'переменные

Dim Lin(70) As Byte                                         'данные строки

Dim B As Byte


Dim P As Byte , O As Byte

'порты памяти
Datain Alias Pina
Dataout Alias Porta
Hiadres Alias Portc
Lowadres Alias Portb
Twoadres Alias Portf.3
Oe Alias Portf.7
Wr Alias Portf.5
'Config Datain = Input
Config Hiadres = Output
Config Lowadres = Output
Config Twoadres = Output
Config Oe = Output
Config Wr = Output

Wr = 0
Oe = 0
Config Dataout = Output
Twoadres = 0
For O = 0 To 255
For P = 0 To 255
Lowadres = P
Hiadres = O
'Waitus 2
Dataout = O
'Waitus 2
Next P
Next O
Twoadres = 1
For O = 1 To 255
For P = 1 To 255
Lowadres = P
Hiadres = O
'Waitus 2
Dataout = O
'Waitus 2
Next P
Next O
Oe = 0
Wr = 1
Config Dataout = Input
Dataout = 0



'настрйока выходов таймера
Hsyn Alias Portd.5
Vsyn Alias Portd.0
Config Hsyn = Output
Config Vsyn = Output

Portd_pin5ctrl = &B01000000                                 ' Аппаратная инверсия пина порта
Portd_pin0ctrl = &B01000000                                 ' Аппаратная инверсия пина порта


'Настройка видео выхода USART

Tv Alias Portd.3
Config Tv = Output
Portd_pin3ctrl = &B01000000                                 'аппаратная инверсия пина Usart


'Настрйока USART
Config Com3 = 0 , Mode = Spi , Databits = 8


'Настройка канала событий на срабатывания переполнения таймера горизонтальной синхронизации.
Evsys_ch0mux = &B1101_1000                                  'Настраиваем канал событий №0 на переполение таймера TCD1


'кол-во байт в одной строке
Const Pixel = 4

'DMA шаманство
Config Dma = Enabled , Doublebuf = Disabled , Cpm = Rr
Config Dmach0 = Enabled , Burstlen = 8 , Chanrpt = Disabled , Ctr = Disabled , Singleshot = Disabled , Tci = Off , Eil = Off , Sar = None , Sam = Fixed , Dar = Transaction , Dam = Inc , Trigger = &H00 , Btc = 69 , Repeat = 0 , Sadr = Varptr(tcd0_cnt) , Dadr = Varptr(lin(1))


Config Tcf0 = pwm  , Prescale = E0 , Event_source = E0 , Compared = Enabled       'на подсчёт таймера
Tcf0_per = 524                                              '
Tcf0_ccd = 250
Tcf0_cca = 1                                                'верхняя граница начала рисования

'настройка тайймера вертикальной синхронизации для подсчёта строк по событию 1 и вывода синхроимпульса
Config Tcd0 = pwm  , Prescale = E0 , Event_source = E0 , Comparea = Enabled       'на подсчёт таймера
Tcd0_cca = 1                                                'длина кадрового импульса
Tcd0_ccb = 481                                              'ограничение рисования
Tcd0_per = Tcf0_per                                         'конец всего кадра целиком

'настройка таймера горизонтальной синхронизации частота развёртки, всё взаимосвязано
Config Tcd1  = Pwm , Prescale = 8 , Event_action = Restart , Compareb = Enabled , Event_delay = Enabled       'конец гориз.сигнала и вызов прерывания вывода информации
Tcd1_cca = 32                                               'начало рисования строки и кадра
Tcd1_ccb = 9                                                'скважность сигнала
Tcd1_per = 175                                              'частота развёртки и видео сигнала в целом (НАСТРОЙКА РАЗВЁРТКИ)

'прерывания по таймерам
Enable Interrupts

'прерывание в начальной стадии рисования строки
On Tcd1_cca Hsyncdata Nosave                                ' обновление массива
Enable Tcd1_cca

'прерывание начала рисования строки
'On Tcd1_ovf Dmaen Nosave                                    'Разрешить выводить строку                                         ' Nosave                                   'вывод данных и обновление массива
'Enable Tcd1_ovf

'прерывание начала всего кадра
On Tcf0_cca Dmaen Nosave                                    'Разрешение вывода данных
Enable Tcf0_cca

'прерывание концп видимой области
On Tcd0_ccb Dmads Nosave                                    'запрет вывода данных строки
Enable Tcd0_ccb

'программа
Do
   'Led = Not Led                                            'если не моргает, значит всё в прерываниях
   'Wait 1
Loop


'обновление данных в строке
Hsyncdata:
Disable Tcd1_cca
'Wr = 1
Hiadres = Tcd0_cnt
Lowadres = 0
nop
nop
'nop
'nop
'nop
'nop
'nop
'nop


'If Tcd0_cnt <480 Then

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1


            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1


            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1




            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1


            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1
            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1


            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1


            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1




            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1


            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1



            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1


            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1




            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1


            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

            Usartd0_data = Datain or &b0001_1111
            Incr Lowadres
            Do
            Loop Until Usartd0_status.6 = 1

Enable Tcd1_cca
Return



'разрешает вывод данных
Dmaen:
Enable Tcd1_cca
Disable Tcf0_cca
Return

'Не разрешает вывод данных
Dmads:
Disable Tcd1_cca
Enable Tcf0_cca
Return

0

209

http://s1.uploads.ru/t/ezwGZ.jpg
http://s1.uploads.ru/t/OCo4n.jpg

Реалтек потребовал другие настрйоки, примерно вышло 490х565 точек.

Всё работает:
http://s3.uploads.ru/t/r7UQ0.jpg

Я во внешнюю память записал то, что на экране и воспроизвожу из памяти.
Теоретически, можно и каждую точку в цвете, если использовать ещё два Usart.
Если чего, ЛУТ в наличии:
http://s3.uploads.ru/t/2RLNp.png
Под Xmega256A3 и чип памяти LP621024DM + Bonus 3.3 вольта стабилизатор  :crazy:

Осталось проверить многоцветность и типа приём данных!!! Проект в стадии завершения...уаля...тратата... :hobo:

Отредактировано Ev3658 (2016-12-20 19:23:46)

0

210

Блин... опять шаманство и млятство.... почему-то весь PortB не работает, а именно PIN4 - на нём какой-то TMS и блин, он постоянно в высоком уровне  :canthearyou:
Добавлено спустя 6 минут 31 секунду:
Это эхо Atmega, FUSE JTAG.... :stupor:

Отредактировано Ev3658 (2016-12-20 20:25:00)

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » ТВ выход на bascom avr