Например TDA7294

Форум РадиоКот • Просмотр темы - Радио 86 РК на STM32
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пн май 25, 2020 10:37:26

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 65 ]    , , , 4
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Радио 86 РК на STM32
СообщениеДобавлено: Пт май 25, 2012 07:57:10 
Первый раз сказал Мяу!

Зарегистрирован: Ср май 23, 2012 11:01:14
Сообщений: 27
Рейтинг сообщения: 0
Spartan пожалуй крутоват будет. В принципе, не буду расхваливать stm32 но камушек многое что заслужил. Спорить не надо. Сделаем и то и то. Основной упор будет на рк86. Знаю что практически все игрушки лезут в видеосистему в обход монитора. О CP/M я как то намекнул, что будет нецелесообразно ее ставить ввиду того что память озу мк ограничена 64 кило памяти, из них системой отъедается порядка 10ти на как уже говорил видеобуферы. Поэтому о более 32кило под память программ и нужды компа как говорится все что есть....

По теме: значит сейчас работа идет в области усовершенствования разгребания видеобуфера.
Ниже подпрограмма, которая формирует непосредственно из символьного буфера данные, которые загоняются в экран.
вызывается так : updateFrameBuffer(tileMap, Font6x8);, где
// строк столбцов
uint8_t tileMap[TILES_HIGH][TILES_WIDE]; // основной буфер (видеопамять 25 на 80 символов )
Font6x8 - массив знакогенератора
Код:
uint8_t Font6x8[256][8] = {
{

_0b00000000,    //Character 0
_0b00000000,
_0b00000000,
_0b00000000,
_0b00000000,
_0b00000000,
_0b00000000,
_0b00000000

}, {

_0b00000000,    //Character 1
_0b00100000,
 _0b01110000,
_0b11111000,
 _0b01110000,
_0b00100000,
_0b00000000,
_0b00000000

},
и так далее
после вызова этой подпрограммы экран обновляется. Ни о чем больше думать не надо, дальше работает DMA то есть этап вывода в экран тв заканчивается этой подпрограммой.

Код:
void updateFrameBuffer(uint8_t map[][TILES_WIDE], uint8_t font[][FONT_HEIGHT])
{//                                                          80                                       8
   uint8_t i;
   uint8_t j;
   uint8_t k;
   uint32_t l;
   
   for(j = 0; j < TILES_HIGH ; j++) // цикл на кол-во строк (25)
   {
      for(k=0;k<8;k++)
      {
         l=0;
         for(i = 0; i < TILES_WIDE; i += 8 ) // цикл на количество символов в строке (80)
         {
            frameBuffer[(j+TOP_MARGIN)*FONT_HEIGHT+k][l++] = font[map[j][i]][k] << 8 | font[map[j][i+1]][k] << 2 | font[map[j][i+2]][k] >> 4;
            frameBuffer[(j+TOP_MARGIN)*FONT_HEIGHT+k][l++] = font[map[j][i+2]][k] << 12 | font[map[j][i+3]][k] << 6 | font[map[j][i+4]][k] | font[map[j][i+5]][k] >> 6;
            frameBuffer[(j+TOP_MARGIN)*FONT_HEIGHT+k][l++] = font[map[j][i+5]][k] << 10 | font[map[j][i+6]][k] << 4 | font[map[j][i+7]][k] >> 2;
         }
         frameBuffer[(j+TOP_MARGIN)*FONT_HEIGHT+k][BUFFER_LINE_LENGTH-1]=0;
      }
   }
}

пишется все в uint16_t frameBuffer[BUFFER_VERT_SIZE][BUFFER_LINE_LENGTH];
где
#define BUFFER_LINE_LENGTH 31
#define BUFFER_VERT_SIZE 240
вот и получается таки графический массив 7440 байт.

Как уже писал ранее проблема состоит в том, что мне приходится выгребать данные из буфера основной памяти РК
unsigned char main_memory[32767]; адреса 0х76d0 - 0х7fff
алгоритм сейчас такой. я перехватываю запись по адресам 76d0 - 7fff перегоняю ВЕСЬ буфер уже в tileMap, и даю команду запустить updateFrameBuffer. В результате при постоянной записи в экран получается почти 99% замедление работы эмулятора так как постоянно двигаются 2х килобайтные массивы. Зато я увидел работу монитора в целом и проверил эмуляцию 8080 и ps2.как то так. остаются доработки.:) У кого есть мысли по этому поводу?
Кому интересно - могу напостить подпрограммы вывода в экран (связка работы таймера и DMA)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Радио 86 РК на STM32
СообщениеДобавлено: Пт май 25, 2012 08:18:43 
Друг Кота
Аватар пользователя

Карма: 31
Рейтинг сообщений: 396
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3389
Рейтинг сообщения: 0
бредовые идеи, извините - плохо вьехал в проблему
как то это (на 8 битном авре) обходится без фрэйм буфера http://belogic.com/uzebox/howitsmade.htm может и тут так
иль мегу отдельную поставить для видео


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Радио 86 РК на STM32
СообщениеДобавлено: Пт май 25, 2012 08:41:11 
Первый раз сказал Мяу!

Зарегистрирован: Ср май 23, 2012 11:01:14
Сообщений: 27
Рейтинг сообщения: 0
неее.. доп проц под видео не кул. идеи то бредовые, да вот въехать бы не мешало.зачастую бредовые идеи порождают гениальный смысл. Реализация вывода видео здесь очень продумана. Я тоже попервах вообще не понимал как это работает. По сути можно особо не разбираться попробывать обновление повесить на какой нить 30ти герцовый таймер и все. Вот промежуточный буфер хочу убрать....мешает он мне.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
Не в сети
 Заголовок сообщения: Re: Радио 86 РК на STM32
СообщениеДобавлено: Пт май 25, 2012 12:54:36 
Друг Кота
Аватар пользователя

Карма: 22
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7324
Откуда: г. Москва
Рейтинг сообщения: 0
Зачем таймер ? полное копирование ?
Ты же всегда знаешь КОГДА и КАКИЕ именно байты обновляются.
Смысл в слепом избыточном процессе ?


Вернуться наверх
 
Регуляторы ViperPlus - решения для источников питания на любой вкус

Решения ViperPlus от STMicroelectronics для построения сетевых источников питания мощностью до 20 Вт любой топологии и конфигурации. Разнообразный выбор микросхем, 50 отладочных наборов и онлайн-симулятор E-Design Suite.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: Радио 86 РК на STM32
СообщениеДобавлено: Пт май 25, 2012 13:58:21 
Первый раз сказал Мяу!

Зарегистрирован: Ср май 23, 2012 11:01:14
Сообщений: 27
Рейтинг сообщения: 0
хм, тоже мысль. нам же эмулятор выдает конкретный адрес : куда писать. в какое знакоместо.... в принципе зачем нам переписывать целиковый буфер в 2 кило когда можно умело просчитать смещение и записать в этот адрес один байт. :idea:


Вернуться наверх
 
Решения Molex для 112 Gbps-архитектуры

На место кодирования NRZ и 100 Гбит/с Ethernet приходят PAM-4 и 400 Гбит/с Ethernet, что требует новых решений не только в области обработки данных, но и в области их приема-передачи, в том числе – контактных разъемов, соединителей, кабелей и других компонентов. Компания Molex предлагает решения, отвечающие современным стандартам и способные работать как с NRZ, так и с PAM-4.

Читать статью>>
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 65 ]    , , , 4

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y