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

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

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

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


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


ТВ выход на bascom avr

Сообщений 1 страница 30 из 421

1

Добрый день! Подскажите, как можно реализовать вывод текста и графики на тв через композитный видео разъем. На си для этого есть спец библиотека, а на бейсике я такого решения не нашел. Интересует именно програмная часть, так как сам видеовыход ч/б в железе уже есть. Имеется в виду чтг сигнал видео и синхронизации с двух портов через резисторы складывается и идет на видео вход тв.

Отредактировано mna (2012-04-17 11:36:40)

0

2

Все высокоуровневые языки рассчитаны на более мощное ядро/железо или там где не нужна производительность.
Бэйсик к высокопроизводительным языкам не относится, если нужна скорость, то приходится уходить на ассемблер, а обвязку делать бейском.
Я лично готовых библиотек не встречал, если будите делать для бэйсика, то возможно это кому-нить пригодится и весьма полезно.
Проблема на самом деле в том, чтобы выводить информацию на экран ТВ, то задействуется практически все ресурсы микроконтроллера и даже не знаю на сколько корректно получится это всё связать с тем же бейсиком (можно конечно рискнуть через прерывания попробовать выводить, но подергивания и сбои думаю будут).

0

3

Идея в том, что сейчас делаю климат-контроль в свою машину. Принцип простой - серва управляет заслонкой печки в зависимости от показаний двух температурных датчиков и уровня необходимой температуры. Все данные выводятся на lcd 16x2. Но в машине есть небольшой монитор, на который надо выводить данные вместо lcd, так как lcd надо встраивать, а портить оригинальный вид не охота.Код под lsd дисплей уже написан и сейчас обтачивается. А с видеовыходом у меня напряг. Как вариант делать отдельный видеотерминал на отдельном мк и конектить его к основному блоку. Но хотелось бы все реализовать на одном мк.

0

4

Интересный вариант. Я так понимаю, что этот чип самостоятельно формирует видеопоток и не грузит мегу. То есть практически аналог работы с lcd.

0

5

Да, это аля видео-контроллер.

По мне единственный недостаток, это 5 вольтовая логика + цена.

Отредактировано RDW (2012-04-17 22:08:43)

0

6

Можно попробовать рассмотреть вариант на 2-х контроллерах, на одном собирается видео-контроллер, на другом управляющем, прочая схема обработки внешних сигналов и действий.

0

7

Я делитант в этом вопросе, но читая ветку возник вопрос -, а как "ZX Spektrum" справлялся с задачей?

0

8

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

как "ZX Spektrum" справлялся с задачей

У него был видеоконтроллер на дискретной логике (что-то типа видеокарты).
Процессор не отвечал за вывод информации на экран.

0

9

Ну так неужели Контроллер не справится с задачей нескольких ключей и логики?

0

10

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

Ну так неужели Контроллер не справится с задачей нескольких ключей и логики?

Нужен поток данных больше 1 мб/с.
Сколько это потребует ресурсов контроллера?

0

11

8-)  руки чешутся, кто пробовал?

Свернутый текст

TVOUT
Top  Previous  Next
The TVOUT add on is an add on that allows you to show text in color on a TV using the SCART connector.

The add on is free for personal use but for commercial use you need to buy a license from the author (Graham Carnell).
http://avrhelp.mcselec.com/tvout_sample.png
This is a photo of the TV display function working on a flat panel LCD TV set

The actual display is perfectly straight, some distortion is seen here caused by the camera optics.

The TV code is free for personal use but that support is not included.
For commercial application you do need a license.

Company licence (unlimited copies for company use) now available for commercial use. Includes built & tested board, pre-programmed sample IC, TV generation software module including all pixel data which can be edited, plus full support from the developer by phone and e-mail.

TV Code Features

* Generates a 55 column color TV character display from an AVR MPU without any extra ICs
* Connects via a standard SCART socket giving a sharp RGB output signal (not composite video)
* Flexible RAM use - display RAM can be as large or small as needed
* Completely interrupt driven software - transparent to user
* Character pixel data can be edited or replaced by the user to allow custom characters

The TV software can be customized to special user requirements (e.g. differing character sizes) but is time critical machine code.

ICs supported

This code is for the ATMega 48/88/168/328 ICs. A PCB is available for testing and / or production. The code can be ported to other ATMega AVR ICs which have 512 bytes or more RAM, and a clock of 16-20 MHz.

BASCOM versions

When using the company licence (which allows as many copies as you need) you will also require a registered copy of BASCOM to allow sufficient Flash program memory for most projects, as the binary include file for the TV output code is 2.5K, leaving only 1.5K of available space for your program out of the 4K maximum space allowed in the demo version of BASCOM.

Orders
The software and hardware is made by Eximia Projects.
Your order will be shipped from the UK, directly from the manufacturer.
You will receive a binary include file.
You will also receive a free development board PCB. This board is used in production and does not has an ISP connector. But it has a tested processor and all other components. All you need is to connect 5V and a TV and it will show a demo.

Support is included in the cost of the development package. You can be assured that this support will smooth your way to producing a product with a TV output - you will not be left to struggle on your own.
Before purchasing the package you might want to E-mail to check if the TV software will be compatible with your planned product, for example if there are many interrupts running or a heavy CPU load.

If you want to use a different Atmel AT Mega IC to the one the software is designed for (AT Mega 48 / 88 / 168 / 328) the first step to take is to contact Eximia Projects and let me know what your design requires. I can then  let you know what extra steps you will need to take (if any) to get the TV software to work with any specific hardware. You can contact Graham Carnell at gmcarnell@gmail.com
A PCB you can buy from Agricom :
http://agricom.gr/eshop/product_info.ph … anguage=en

How to use BASCOM with the TV software module

The TV display is very simple to use from a programming point of view.
As it runs entirely within the ATMega chip, it uses internal RAM to hold the display data. This means that all you have to do to write to the display is write bytes to the RAM which is allocated to the TV screen area.

To start with you need to include the following 7 lines of code in
your BASCOM program:

On Oc2a Tvinterrupt Nosave
Goto Main
!.org $100
$inc Tvinterrupt , Nosize , "tvinc.bin"
Return
Main:
$include "tv.inc.bas"

You don't need to worry about these statements, you can just cut & paste this into your program and it will work.

After including these lines of code you can make the TV display work simply by moving bytes to the screen area in the internal RAM.

The amount of RAM used by the display is very flexible. It can be any number of bytes up to the maximum possible which is 12 lines of around 56 bytes per line, maximum 672 bytes.

The minimum number of bytes which can be used is just one! This byte would be the "End of Screen" code which has to be the very last byte of any screen. In fact, if the interrupt is disabled, then no RAM is needed at all, and you will also have full CPU usage until you enable the interrupt again. To disable the TV software all you need to do is:

      DISABLE OC2A

this will halt the TV code and allow all RAM to be used by your application, then

      ENABLE OC2A

to start the TV code again. You will need to make sure the screen RAM area contains sensible display data before enabling the interrupts.

You can use all of the on-chip RAM to do calculations and for temporary storage, you only need to free enough RAM as you need for the screen while it is actually displaying.

More Info
http://sites.google.com/site/bascomtvhelp/

PDF with detailed information can be downloaded from here

Bascom TV FAQs

Q: How can I add TV output to my BASCOM application?

A: If you are using an ATMega48/88/168/328 everything is already set up for you to use. If you want to use another ATMega IC, you need to refer to the technical information and make sure that the IC you are using has enough hardware resources (CPU speed, SPI port, RAM etc). You can't just add TV output to any AVR chip - ATTiny ICs are not supported as the TV code uses the hardware multiply instruction, and only ATMega ICs have enough RAM.

Q: What about low power applications?

A: Whilst TV output is enabled, power consumption will be around the maximum given in the data sheet for the IC at the speed and voltage used. TV output should be disabled when not needed, then the IC can benefit from all the low power and sleep modes available. This would be relevant to any device which is normally in low power mode, but can have a TV attached to display data only when required.

Q: What about CPU intensive applications?

A: As explained in the previous Q/A about low power, the TV output can be switched off (by disabling the relevant interrupt) so the full CPU power is available, however most applications can easily run in the spare time (approx 20%) of the CPU when running at 16 or 20 MHz.

Sample hardware:
http://avrhelp.mcselec.com/tvout_hw.png


TECHNICAL INFORMATION

IMPORTANT

You do not have to read this information - BASCOM and the TV code will automatically set up the hardware as required. If you use the supplied PCB this ensures the TV output will work without any knowledge of the module.
These technical details are for reference.

The TV code has various fixed hardware requirements as follows.

Clock:

The clock MUST use an external crystal to produce a stable screen.
Normally 20 MHz but 16 MHz can be used (20% less columns).

SPI port:

The SPI hardware is used by the TV code and cannot be used for other purposes while the TV code is running.

RAM use:

* Amount of RAM used can be very small - EndScreen code marks end of RAM used
* Lines are variable length so only visible characters [excepting space] use RAM

RAM Addresses:

* The address of RAM used by the TV code is fixed at $100 (start of RAM in ATMega 48/88/168/328 ICs)
* The first six bytes of RAM are used to store variables for the interrupt code
* The first byte of RAM used for the screen area is at address $106

Maximum RAM use:

* For a full screen of 55 characters by 12 lines, RAM used = 660 bytes
* In an ATMega48, used screen RAM will need to be kept below around 450 bytes for use with BASCOM

GPIO register:

In ATMega 48/88/168/328 ICs there is a "GPIO" register at $1E. Bit 0 of this is used by the code.
The other 7 bits are unused and can be changed by the user software.

Pixel data:

* The pixel data used for the characters shown on screen starts at a fixed Flash ROM word address
* All pixel data can be edited or replaced by the user to allow custom characters

Timers:

* Timer 2, an 8 bit timer, is reserved for use by this code
* Timer 2 causes a 64µS interrupt and can be used for a system "tick"
* Timers 0 and 1 are unused

Reset and interrupt vectors:

* The interrupt vectors for Timer 2 compare match A and B are both used
* Timer/Counter2 Compare Match B vector points to the TV interrupt code

Control characters:

* End of line code = EndLineCode = $0D
* End of screen code = EndScreenCode = $0C
* Set colour to yellow chars on a red background = SetYellowCode = $10
* Set colour to green chars on a black background =  SetGreenCode = $11
* Set colour to cyan chars on a blue background = SetBlueCode = $12
* Set colour to white chars on a magenta background = SetWhiteCode = $16

All of Port B is reserved:

* PB0 Sync
* PB1 Blue
* PB2 Red
* PB3 Green
* PB4 & PB5 [2] allocated SPI pins
* PB6 & PB7 [2] Used for XTAL

No pins on Ports C or D are used

Interrupt Code:

* Triggered by Timer 2 interrupt
* Runs every 64 uS
* Consumes up to 80% of CPU time [worst case]

Fuses:

Only the low fuse needs to be changed:

CKDIV8 must be high (unprogrammed) so clock will be at full freq

1 CKDIV8 Divide clock by 8 (default 0 = programmed)
1 CKOUT Clock output (default 1 = unprogrammed) i.e. clock output off
1 SUT1 Select start-up time (default 1 = unprogrammed)
1 SUT2 Select start-up time (default 0 = programmed)

SUT1,2 = 11 selects Crystal Oscillator, slowly rising power (in case of PSU problems)

0 CKSEL3 0
1 CKSEL2 0
1 CKSEL1 1
1 CKSEL0 0

0111 in CKSEL 3210 selects full swing oscillator, slowly rising power

So lfuse = $F7




Example

' Serial input demo.
' NOTES:
' Uses an array of bytes for Screen RAM
' Uses Tilde char "~" = $7E for new screen

$crystal = 20000000
$BAUD = 19200

' Reserve screen variable area at start of RAM
' Assembler interrupt code has two byte variables IN BETWEEN two word variables
Dim ScreenAddr1 as word at $100
Dim RAMVar1 as byte at $102
Dim RAMVar2 as byte at $103
Dim ScreenAddr2 as word at $104

' Reserve Screen RAM - can reserve as much or as little as required
Dim ScreenRAM(600) as byte at $106
Dim Addr As Word
Dim CharIn as Byte

Const NewScreen = $7E

'Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
'Config is not needed unless settings differ from default

On Oc2a Tvinterrupt Nosave
Goto Main
!.org $100
$inc Tvinterrupt , Nosize , "tvinc.bin"
Return

Main:
  ' Set up clock division - only need to do this if DIV8 fuse not set, as default fuse setting is div. by 8
  Config Clockdiv = 1
  '        CLKPR=$80
  '        CLKPR=0
  ' Setup timer 2
  TCCR2B=$02
  OCR2A=158
  OCR2B=160
  TIMSK2=&b00000110
  ' Now set up sleep mode [SMCR = Sleep Mode Control Register] - must be enabled or TV code cannot work accurately
  SMCR=1
  ' Set PORTB to all outputs for video signal
  DDRB=$FF
  ' Enable & config SPI
  SPCR=$54
  SPSR=1
  ' Init RAM variables for interrupt code
  RAMVar1=0
  RAMVar2=0
  ScreenAddr1=$106
  ScreenAddr2=$106

  ENABLE OC2A
  '        ENABLE OC2B
  ENABLE INTERRUPTS
  ' Now continue with user code


  Addr=1       ' Set Addr to address of first screen location

  Do
     CharIn=INKEY()
    If CharIn>0 then
        ScreenRAM(Addr)=CharIn
        Incr Addr
        ScreenRAM(Addr)=13     ' Make sure there is always an end of screen character
    End If
    If CharIn=NewScreen then
        Addr=1
        ScreenRAM(Addr)=13
    End If
    If Addr>599 then Addr=599       ' Make sure cannot write past end of screen Ram
  Loop

  ' Decimal {012} = $0C = END OF LINE MARKER
  ' Decimal {013} = $0D = END OF SCREEN MARKER

  ' Decimal {017} = $11 = Green on black
  ' Decimal {019} = $13 = Cyan on blue
  ' Decimal {020} = $14 = Yellow on red
  ' Decimal {022} = $16 = White on magenta

End

0

12

Спасибо за SPOLER, забыл совсем.

Был я на сайтах зарубежных, да и на наших побыла, буквы картинки смотрел и в мозг не попало  :D

Есть ряд вопросов, на которые ответ никак не могу найти.

Подключал Atmega328p по такой схеме:

схема подключения AVR к Ч/Б VGA

http://eldigi.ru/articles/54/video_vga_adapter.jpg

Пытался вывести ЧБ изображение, к примеру просто белый или чёрный экран или линиями. Монитор съедал сигнал, но картинка стабильно не держалась.

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

распиновка VGA

http://i.stack.imgur.com/DtrXl.gif

По поводу времени задержки после сигнала синхронизации и перед ним, тоже вроде всё ясно:

диаграмма

http://www.pvsm.ru/images/2016/05/13/vyvedenie-izobrajeniya-s-kamery-OV7670-na-VGA-monitor-s-ispolzovaniem-FPGA.png

Но не ясно, как выводить разрешение к примеру 640 на 480. Одни пишут, что нужно в начале и в конце лишние строки пускать, другие без этого обходятся.

Алгоритм вроде простой:
Рисуем по горизонту и через 640 горизонтальных импульсов, пускаем 1 импульс вертикально и так в низ до 480 импульсов, ну а дальше всё по циклу. Если так, то как монитор узнаёт начало рисования?

0

13

Вначале надо определиться куда выводить видео информацию, на: ТВ или VGA. Как бы разные вещи и разное качество на выходе.
Так же надо определиться с экраном, какой дешевле экран в нужную диагональ?
У баскома есть мощное решение/пример как раз на это разрешение:  http://www.mcselec.com/index.php?option … ;Itemid=57
Есть ещё другие проекты: http://roboforum.ru/forum2/topic6940.html
Впрочем, как было подмечено выше, может есть смысл сделать видео контроллер на внешней логике, а потом это всё запихать по возможности, в какую-нить простенькую PLD XC9572XL or XC2C64A...

0

14

А вообще, VGA трудно назвать "красивым", посмотри стандарт, там либо 640х480 16 цветов или 320х240 256 цветов.
Нормальная красота начинается с SVGA.

0

15

Если посмотреть код для дуни: https://dqydj.com/how-to-produce-640x48 … n-arduino/
То вообще складывается впечатление, что МК вообще нечем больше заняться, как вывод на экран.)))
Причем памяти (ОЗУ) у него просто нет для этого, ведь там надо около 256КБ. Можно конечно и меньше..зависит от алгоритма.
Вообще, если тебе эта тема так интересна, то лучше разобраться с протоколом обмена монитора и своё написать... http://www.skrasser.com/blog/2015/09/05 … m-scratch/
https://tldr.fi/2014/09/27/zc160-vga-adapter1/
По русски: http://www.polesite.ru/?p=2553

+1

16

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

...

Спасибо за информацию!!! Задача оказалось очень сложно, эта привязка к времени просто убивает.
А, что если сделать VGA драйвер на 4х Atmega8  :crazy:
Раскидывать данные по ним для вывода, пока одна выводит, другая принимает и ждёт. Всё-же дешевле будет, чем ПЛИС и габариты в норме.
Все попытки оседлать проваливаются.
Коче-что не понял в статьях. При выводе разрешения экрана, добавляются пустые бордюры, в эти пустые бордюры видео сигнал не подаётся или подаётся?

расположение видимой и не видимой части

http://www.polesite.ru/wp-content/uploads/2014/01/screen21.gif

Отредактировано Ev3658 (2016-10-08 11:08:53)

0

17

Вот ещё: http://wiki.pic24.ru/doku.php/osa/articles/vga_terminal
Как я понял, бордюры всегда есть, просто мониторы их обрезают. Т.е. выводится больше информации чем отображается (640х480).

На счет 4 МК, слабо представляю как их синхрить и организовывать нечто подобного DMA, вот может проще Xmega для этого, НО! Как писал ранее, нужно оперативка, если юзать жалкие 320х240х256 нужно 76800 памяти + место для переменных...в общем получится уже полноценный компьютер)

Отредактировано RDW (2016-10-08 11:38:18)

0

18

Если делать 640х480 монохром, то понадобится чуть меньше памяти для видело 38400 байт...

0

19

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

Если делать 640х480 монохром, то понадобится чуть меньше памяти для видело 38400 байт...

Да, тут без внешней памяти никак не обойтись  :no:
По некоторым ссылкам использовали параллельную FLASH память 512х8.
Одну память записываем, пока другая читается (выводится).
Тут сложность всё вывести на 16ти мегагерцах, можно просто тупо по 8 байт кидать в контроллер, который просто будет заниматься выводом 8 бит с порта и посылать тактирование 1 раз после 8 пикселей, другой контроллер будет выбирать адрес, eprom и держать на готове данные, третий будет не спеша пихать в память то, что мы ему будет подсовывать. В итоге получим возможность отрисовывать чего либо.
Но как вывести на 16 мегагерцах 640х480 монохром, тут уже сложно, наверно без X мега не обойтись.

Добавлено спустя 14 минут 4 секунды:


Чего-то в голову стрельнуло!!!! А ведь же в старых ПК есть SRAM память, там достаточно объёма в одном чипе, да и скорости хватит + питание 5в.
К примеру вот hy514400a - DATASHEET

А если копнуть по глубже, может и видюха S3 валяется, там 814265-60 made in Japan - DATASHEET

Всё, загорелось.... надо ЛУТить  :D

Добавлено спустя 4 часа 42 минуты 29 секунд:


Всё, это точно атрофия мозга, может усталость или чего.

К примеру, имеем память 1024х4 - это 10 битный адрес от 0 до 1023, разрядность ячейки 4 бита - это получается 512 байт?

Отредактировано Ev3658 (2016-10-08 18:14:45)

0

20

Ого! Нашел нечто реальное: ISA видеокарта и AVR

Тоже интересное решение: Простая VGA видеокарта

Отредактировано Ev3658 (2016-10-08 19:10:42)

0

21

Готовый вариант - Atmega328 рулит

Отредактировано sasha_1973 (2016-10-08 19:41:01)

0

22

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

Готовый вариант

Макс отвергнут. Почему? Не знаю, хозяин - барин.) Видимо из-за отсутствия рисования графиков.

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

hy514400a

Это DRAM - динамика, геморрой, нафиг надо.
Надо брать обычный SRAM на выходе с 1 бит (если делать монохром) и на объём сразу всей матрицы/разрешения (включая черные полосы).

Думаю можно взять два SRAM и один любой МК удовлетворяющий адресному пространству и прочей логике.
Один SRAM для моментальной отрисовки графики.
Второй для загрузки/подготовки данных для загрузки в первую.
МК загружает по любому интерфесй данные в второй SRAM, потом по команде перебрасывает данные из второй в первую.
Так же он занимается полу аппаратной генерацией/переборкой адреса для вывода информации на экран из первой SRAM...ну и куча нюансов, чтобы это всё работало.
Когда данные не передаются в VGA, то МК моментально передается данные из второй в первую SRAM, но не постоянно, только по команде (думаю по кадровой).
Выход на VGA, на время переброски из второй SRAM в первую - блокируется логикой (в черный цвет).
И т.д...

0

23

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

Готовый вариант - Atmega328 рулит


Это резервный план, спасибо  8-)
А она только с видео входом дружит? С VGA не работает?

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

......не передаются в VGA, то МК моментально передается данные из второй в первую SRAM, но не постоянно, только по команде (думаю по кадровой).
Выход на VGA, на время переброски из второй SRAM в первую - блокируется логикой (в черный цвет).
И т.д...


Попробую схему накидать.

0

24

Можно взять к примеру CY7C107D, полное адресное пространство не использовать.
Можно попробовать поискать другие модели, что попроще.
Брать сразу память с большей разрядностью на выходе - это доп.нагрузка на МК для управления/распределение/переключение выходов по тактам отрисовки....т.е. как бы сейчас непонятно справится ли он с более простой задачей, чем пытаться возлагать на него, что дополнительно.
По идеи весь вывод, счетчики адреса, делители, управление логики можно сделать на обычной логие/PLD.

Вообще читая инет, у людей есть некоторые проблемы вообще с отображением информации в VGA. Т.е. для начала нужно собрать примитивную схему с двумя сигналами синхронизации, а все цвета задать константой и посмотреть, что будет отображать монитор. Пощупать руками эти строки/бордюры/данные.

0

25

Ещё:
- 62WV51216BLL, можно купить модуль готовый с разводкой под панель PLD|PLS (можно использовать даже для нескольких примитивных цветов, 8 цветов);
- AS6C4008;
- AS7C34096A.

0

26

Не выдержал (увидев цену) купил парочку AS6C4008...зачем? Не знаю, в проектах 512КБ озу лишними не будут. :)

Кстати говоря, можно 8 бит выхода использовать как DAC, рассчитать делители и сделать много цветов сразу (в 1 байте сразу кодировать несколько), ну это так на будущее...

Отредактировано RDW (2016-10-09 12:25:32)

0

27

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

Ого! Нашел нечто реальное: ISA видеокарта и AVR
Тоже интересное решение: Простая VGA видеокарта

Да, но только всё это сильно тормозит.
Если делать всё своё, то неизвестно как это всё будет работать, ибо придется ворочать массив в 336КБ и с частотой 60Гц! Это где-то 20МБ в секунду - не кисло так.
Даже если сделать вывод только текста шрифта (что по идеи будет минимально затраты по производительности), то непонятно как оно будет быстро рисоваться...сдаётся мне МК не потянет.) А уже говорить про всякую графику...явно будет тормозить. По этому вывод на VGA  и переброску данных надо делать "аппаратно", а загрузку/отрисовку в буфере можно и тормозно, необязательно привязываться к кадрам...

0

28

Набросал схему с чипом памяти из видео карты S3 Trio64V+
Datasheet на память: MB814265-60/MB814265-70
Идея есть, правда не выводить RGB для начала, хотя-бы пару цветов, чтоб не депрессивно было  :stupor:
Atmega8 или ему подобное получают 16 бит, пока они его выводят, мы записываем нужное другим контроллером, ставим память на чтение и выбираем адрес и так по циклу. Atmega128 и ему подобное не так будет нагружено и думаю вполне сможет справится как графический контроллер.

http://s6.uploads.ru/t/e15HK.jpg

Я ещё не работал с памятью, мог чего накосячить, как бы уже на готове утюг и хлорное железо  8-)
Для начала надо заставить МК выводить горизонтальную и вертикальную синхронизацию! Это самое сложное.

0

29

Посмотрел на схему... и так и не понял как оно будет работать... мега 128 перебирает адреса и читает / пишет данные в память, а мега 8 имеет доступ только к данным и не синхронизирована с мега 128. Как мега 8 узнает когда нужно считывать данные?
Меге 128 придется постоянно обращаться к ячейками памяти содержимое которых в данный момент выводится на экран. Зачем тогда нужна мега 8, непонятно?

0

30

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

....Зачем тогда нужна мега 8, непонятно?

Атмега8 будет привязана чётко по времени, чтоб генерировать все сигналы по времени. Так-же будет выдавать заранее сигнал, когда нужно будет поставить адрес на чтение.
Atmega128 будет по прерыванию подготавливать адрес в памяти, а в свободное время общаться с подключённым контроллером и записывать в нужную ячейку нужные данные.
Получается, один кладёт кирпичи, а другой подаёт кирпичи, считает их и заранее подготавливает их по размеру, если не успел, то тот, кто кладёт кирпичи, будет класть чего угодно, что под рукой  :D

0


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