nedoText/SX - вывод текста 80x25 на экран ТВ с помощью SX28

8-битные микроконтроллеры PICmicro (ПИКи) от Microchip и совместимые, а также 16-битные PIC24 и 32-битные PIC32

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Ещё один тест на вывод 16 символов:

Image

Тест сначала выводит нулевой байт (0x00), затем 6 раз 1 пиксел со сдвигом от правого края до левого (0x04,0x08,0x10,0x20,0x40,0x80), затем 5 раз 2 пиксела (0x0C,0x18,0x30,0x60,0xC0), ну и наконец 4 раза по 3 пиксела (0x1C,0x38,0x70,0xE0).

Вот тоже самое, но снятое фотоаппаратом с экрана моего большого ТВ (левый-верхний угол экрана):

Image

Влияние помех можно посмотреть вот по этому видеоролику (399K) - тотже левый-верхний угол экрана.

То что правая колонка знакоместа (шестой пиксел по счёту) выглядит тоньше остальных - нестрашно, т.к. предполагается использовать символы шириной только в 5 пикселов, т.е. шестой пиксел у знакоместа всегда будет чёрным.
Last edited by Shaos on 26 Dec 2006 00:33, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Если использовать знакогенератор через RETLW (храниение и возврат данных по пиковски), то не удаётся влезть в 35 тактов - пробую сделать генератор через DATA (чтение через IREAD - решение только для SX)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
cr0acker
God
Posts: 1078
Joined: 03 Feb 2003 13:53

Post by cr0acker »

Shaos wrote:Если использовать знакогенератор через RETLW (храниение и возврат данных по пиковски), то не удаётся влезть в 35 тактов - пробую сделать генератор через DATA (чтение через IREAD - решение только для SX)
А сколько тактов получается?
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

cr0acker wrote:
Shaos wrote:Если использовать знакогенератор через RETLW (храниение и возврат данных по пиковски), то не удаётся влезть в 35 тактов - пробую сделать генератор через DATA (чтение через IREAD - решение только для SX)
А сколько тактов получается?
Пока незнаю, но с RETLW точно больше, т.к. RETLW не возвращает за пределы страницы - возвращает RETP, но чтобы его подружить с последовтельностями RETLW надо добавить еще один вызов подпрограммы и возврат - а это ещё 6 тактов. Шесть тут, шесть там - вот и перескочили за допустимую границу...
Я тут за главного - если что шлите мыло на me собака shaos точка net
DDp
Novelist
Posts: 46
Joined: 24 Aug 2006 02:14
Location: pуcвoceмьнадцaть

Post by DDp »

Shaos wrote:В этом проекте всё черно-белое - те цветовые полосы что на картинке - это искажения в плате видеоввода...
Захватываешь через композит, а если через s-video ?!!!
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

DDp wrote:
Shaos wrote:В этом проекте всё черно-белое - те цветовые полосы что на картинке - это искажения в плате видеоввода...
Захватываешь через композит, а если через s-video ?!!!
S-Video по идее можно - я ведь только сигнал яркости могу генерировать, а цветность - не подключать
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:Взаимодействие с девайсом предпологается осуществлять по 10 сигналам (плюс земля): D0, D1, D2, D3, D4, D5, D6, D7, IFLAG, OFLAG (из них выходной только OFLAG, а все остальные - входы).

Внешнее устройство ждёт когда OFLAG=0, затем выводит в D0...D7 нужный код и взводит IFLAG=1, далее ждём когда OFLAG=1 и сбрасываем IFLAG=0. Пока не станет OFLAG=0 новый код засылать нельзя.

Двоичный код вида 000yyyyy задаёт текущую строку.
Двоичный код вида 1xxxxxxx задаёт текущий столбец.
Все остальные коды (в диапазоне 0x20...0x7F) считаются кодом выводимого символа.
В связи с тем что в чип удалось затолкать весь видимый диапазон букв включая псевдографику и русские буквы в альтернативной досовской кодировке (от 0x20 до 0xEF) - потребовался другой способ задания координаты текущего символа. Можно поробовать что-то более стандартное - например как в терминале VT52: PRINT CHR$(27)+"Y"+CHR$(32+Y)+CHR$(32+X).
Я тут за главного - если что шлите мыло на me собака shaos точка net
Sonic
Senior
Posts: 112
Joined: 09 Jun 2005 05:34

Post by Sonic »

Shaos wrote:Можно поробовать что-то более стандартное - например как в терминале VT52: PRINT CHR$(27)+"Y"+CHR$(32+Y)+CHR$(32+X).
Ух ты! Надо довести разработку до уровня полного клона VT-52. И сделать чтобы на цветных ТВ цвет был зеленый.
Возможно что я даже знаю кому можно продать некоторое количество данных девайсов. Только там должен быть тогда протокол WYSE.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Sonic wrote:
Shaos wrote:Можно поробовать что-то более стандартное - например как в терминале VT52: PRINT CHR$(27)+"Y"+CHR$(32+Y)+CHR$(32+X).
Ух ты! Надо довести разработку до уровня полного клона VT-52. И сделать чтобы на цветных ТВ цвет был зеленый.
Возможно что я даже знаю кому можно продать некоторое количество данных девайсов. Только там должен быть тогда протокол WYSE.
Не знаю что такое WYSE. Да и коммерческих применений не ищу - кому надо, тот разовъет до коммерческого использования ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 01:00
Location: Москва

Post by CHRV »

Shaos wrote:Не знаю что такое WYSE. Да и коммерческих применений не ищу - кому надо, тот разовъет до коммерческого использования ;)
Целеком поддерживаю.
Принцип NedoPC делать в свое удовольствие и класть на коммерцию!
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:
cr0acker wrote:
Shaos wrote:Если использовать знакогенератор через RETLW (храниение и возврат данных по пиковски), то не удаётся влезть в 35 тактов - пробую сделать генератор через DATA (чтение через IREAD - решение только для SX)
А сколько тактов получается?
Пока незнаю, но с RETLW точно больше, т.к. RETLW не возвращает за пределы страницы - возвращает RETP, но чтобы его подружить с последовтельностями RETLW надо добавить еще один вызов подпрограммы и возврат - а это ещё 6 тактов. Шесть тут, шесть там - вот и перескочили за допустимую границу...
IREAD помог уложиться в отведённые 35 тактов на символ (до сих пор не могу понять почему не 36)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Очередная закапченная картинка:

Image

Тоже самое снятое фотоаппаратом с экрана большого ТВ:

Image

Левый-верхний угол:

Image

Как можно видеть левый край символов "плывёт" и кое-где почти склеивается с правым краем предыдущих символов (несмотря на то что правее правой колонки каждого символа всегда есть ещё одна пустая чёрная колонка). Пока никак не могу это побороть - если начинаю двигать синхропосылку в делитель частоты влево или вправо относительно строба загрузки сдвигового регистра, то становится ещё хуже - исчезает либо полностью левый край, либо полностью правый край символов. Думаю пока можно считать допустимым то что получилось. Исходники как обычно - на CVS.

Теперь надо сделать возможность управления девайсом снаружи.
Я тут за главного - если что шлите мыло на me собака shaos точка net
lvd
Maniac
Posts: 230
Joined: 01 Mar 2005 21:42

Post by lvd »

Shaos wrote:IREAD помог уложиться в отведённые 35 тактов на символ (до сих пор не могу понять почему не 36)
Надеюсь, по завершению этой эпопеи стало понятно, что такие вещи не надо делать на МК =)
Du bist ein Spektrumist!
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

lvd wrote:
Shaos wrote:IREAD помог уложиться в отведённые 35 тактов на символ (до сих пор не могу понять почему не 36)
Надеюсь, по завершению этой эпопеи стало понятно, что такие вещи не надо делать на МК =)
Это скорее имеет место быть некоторая непредсказуемость (или неполная документированность) чипа SX-28 - в чистых пиках подобных "странностей" быть не должно, хоть они и медленнее.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

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

Image

А теперь на очереди управление снаружи - тестировать буду через LPT-порт своего PC под линуксом.
О результатах сообщу - как обычно со скриншотами ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net