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

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

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

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


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


ТВ выход на bascom avr

Сообщений 31 страница 60 из 405

31

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

Атмега8 будет привязана чётко по времени, чтоб генерировать все сигналы по времени.

Разве что затактиовать от одного квраца и писать проги на асме с таким расчетом чтобы все выполнялось синхронно...

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

Atmega128 будет по прерыванию подготавливать адрес в памяти

Откуда она узнает какой адрес нужен, если мега 8 не может его сообщить?

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

если не успел, то тот, кто кладёт кирпичи, будет класть чего угодно, что под рукой

Представляете какая будет картинка?

0

32

1. 256КБ - мало, если только на меньшее разрешение рассчитывать
2. опять ты взял динамическую память (на ёмкостях), у тебя и так времени МК на пределе, а ты ещё должен успевать рефрешить чип, чтобы он не забыл данные
3. у меня в голове схема была как-то проще значительно, я думал прямо с выхода ОЗУ данные выплёвывать в VGA (со всеми 3-я цветами)

0

33

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

1. 256КБ - мало, если только на меньшее разрешение рассчитывать
2. опять ты взял динамическую память (на ёмкостях), у тебя и так времени МК на пределе, а ты ещё должен успевать рефрешить чип, чтобы он не забыл данные
3. у меня в голове схема была как-то проще значительно, я думал прямо с выхода ОЗУ данные выплёвывать в VGA (со всеми 3-я цветами)

Да ч/б вроде как всё просто получается. Даём контроллеру 16 бит информации, пока он их выводит, подготавливаем следующие.
C Atmega8 заранее за несколько тактов кидаем, что скоро будет вывод информации на прерывание X128. Получается, Atmega128я нагружена в 16 раз меньше. Если ресурсов хватит на цветность, почему бы и нет.
Распределение и запись в память будет очень простая, каждый пиксел по порядку и так от верха до низа (307200 бит, это 19200 16bit ячеек). Если производительности хватит, то можно уже цветность реализовать.

0

34

Да взашло же на меня озарение!!!!  :idea:
Эти статьи как-то не так всё описывают!!! Весь мозг изнасявкал, а он всё никак.
В итоге понял кажись весь принцип, о котором никто и не писал!
Представьте себе старые колхозные ТВ или мониторы.
Так вот, чтоб включить свет и разрешить ему моргать по горизонту, мы используем горизонтальную синхронизацию, то-есть на, вот тебе разрешение на включение луча, а вот тебе запрет и т.д. + общее разрешение включение света вертикальной синхронизацией, ведь зачем нам моргать, когда луч уходит по диагонале назад.
Вот и получаем, вертикальная синхронизация должна быть постоянно включена и отключается только в тот момент, когда отходим назад.
Горизонтальная синхронизация включается заранее, чтоб разогреть лампы в телевизоре ))).

Если так, то ставим единицу в горизонтальной развёртке и выводим пиксель, после отключаем и выводим новый так-же и всё это при высоком уровне вертикальной синхронизации, типа двойное разрешение на вывод луча.

Это я себе так мозг задень сломал или так и есть?  :hobo:

0

35

Я думал увидеть пост "А!!! Оно работает!" :D

0

36

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

Я думал увидеть пост "А!!! Оно работает!"

Целый день конючил, уже глаз дёргается  :stupor:
Завтра думаю сделаю. Всё-же, не могу разобраться с этими бордюрами и частотой строк. Пишут, что частота пиксела 25.175MHz при 640х480, не могу понять, как такая частота с АВР может быть?
Чувствую себя шаманом )))
Завтра ещё идеи опробую и почему-то уверен, что всё получится!

0

37

В том то и дело, главное держать V и H Sync, а что внутри рисуется - это вторично.
В основном на АВР просто уменьшают разрешение, время на отрисовку более крупных пикселей (или разгоняют МК).
Я всё никак не собирусь, чтобы посчитать кратную частоту для образного "одного пикселя), чтобы он подходил для обеих синхронизаций. V и H они же вроде должны быть синхронными...это я к чему, если задать эту частоту (одного пикселя), то можно взяв ХМегу его на таймер посадить (и даже возможно в DMA запихать, чтобы МК не отвлекался на рутину), а далее по нему синхронизироваться и рисовать картинки.
Но как я толковал ранее, я бы этим методом бы не шагал (ибо тогда понадобится серия А1 с нормальным контрллером внешней памяти).
Для рисования сделал внешний генератор и счетчик адреса для SRAM, далее с него напрямую вывод на VGA (этакий RAMDAC).
Далее некую логику, которая бы по внешнему сигналу (защелке) перекидовала бы данные из одного ОЗУ в другой.
Тут надо только понять, когда лучше это делать (перекидование), можно к примеру, в момент между кадрами (простой по идеи там огромадный относительно всей отрисовки).

Отредактировано RDW (2016-10-12 10:55:03)

0

38

Тут пока не до DMA и внешней памяти, экран бы белым засветить и уже радость!

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

Код:
#define NOP asm(«nop»)
#define BLACK PORTB = B00000000;
#define BLUE PORTB = B00000001;
#define GREEN PORTB = B00000010;
#define CYAN PORTB = B00000011;
#define RED PORTB = B00000100;
#define MAGENTA PORTB = B00000101;
#define YELLOW PORTB = B00000110;
#define WHITE PORTB = B00000111;
 
unsigned int linecount = 1;
 
void setup()
{
  //Set pins 5 to 10 as outputs
  // 7 — HSYNC
  // 6 — VSYNC
  // 10, 9 e 8 — RGB
  DDRD |= B11100000;
  DDRB |= B11100111;
  PORTD |= B11000000;
 
  //set timer
  TCCR2A = 0×02; // WGM22=0 + WGM21=1 + WGM20=0 = Mode2 (CTC)
  TCCR2B |= (1 << CS20); //
  TCCR2B |= (1 << CS21); // Set prescaler
  TCCR2B &= ~(1 << CS22); //
 
  TCNT2 = 0; // clean counter
 
  TIMSK2 &= ~(1<<OCIE2A); // set comparison interrupt
  TIMSK2 |= (1<<TOIE2); // set overflow interrupt
}
 
void loop()
{
  noInterrupts();
  do{
    BLACK;
    if (TCNT2 > 0x0f){
 
      delayMicroseconds(1);
      NOP;NOP;NOP;NOP;
 
      TCNT2 = 0×00;
 
      // #### HSYNC ###
      PORTD &= ~(1 << 7);
      if (++linecount >= 525){ //525 lines
        linecount = 1;
      }
      PORTD |= (1 << 7); 
 
      // ### VSYNC ###
      if ((linecount == 1)||(linecount == 2)){
        PORTD &= ~(1 << 6);
      } else {
      PORTD |= (1 << 6);
 
      NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
      NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
      NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
      NOP;NOP;NOP;NOP;NOP;
 
      if ((linecount >= 9) && (linecount <= 489)){
 
        WHITE;
        delayMicroseconds(3);NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
        BLACK;
        delayMicroseconds(3);NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
        BLUE;
        delayMicroseconds(3);NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
        GREEN;
        delayMicroseconds(3);NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
        CYAN;
        delayMicroseconds(3);NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
        RED;
        delayMicroseconds(3);NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
        MAGENTA;
        delayMicroseconds(3);NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
        YELLOW;
        delayMicroseconds(3);NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
        BLACK;
        NOP;NOP;NOP;NOP;
      }
 
     }
   }
  }while(1);
}

Он рисует цветные полосы:
http://www.polesite.ru/wp-content/uploads/2013/12/DSCN1629.jpg

Попробовал в Bascom Avr перевести, чего-то нашаманил.
В итоге иногда серая полоска промелькивает на одном мониторе и ничего на другом.

Код:
$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 96
$swstack = 96
$framesize = 96


Config Timer2 = Timer , Prescale = 1 , Clear Timer = 0
Enable Timer2
Enable Interrupts




On Oc2a Syn
Compare2a = 15
Enable Oc2a
Enable Interrupts                                           '





Vout Alias Portd.4
Gsyn Alias Portd.2
Vsyn Alias Portd.3

Config Vout = Output
Config Gsyn = Output
Config Vsyn = Output



Dim X As Word
Dim Y As Word
X = 1

Do

Loop
End





Syn:
   Vout = 0
   Waitus 1

   Timer2 = 0
   Nop
   nop
   nop
   nop


   Gsyn = 0

   Incr X

   If X > 524 Then X = 1


   Gsyn = 1

If X < 3 Then
      Vsyn = 0
      Else
      Vsyn = 1

      Nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop

      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop

      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop

      nop
      nop
      nop
      nop
      nop


   If X > 8 And X < 490 Then
      Vout = 1
      Waitus 14


      nop
      nop
      nop
      nop
      nop
      End If

   End If


Return

Результат сигналов Bascom кода:
http://se.uploads.ru/t/WeCnG.png
Зелёная - горизонтальная синхронизация.
Желтая - вертикальная синхронизация.

Уже весь моск высушил. Прям где-то рядом всё, но немогу понять.

0

39

Я в Си не силён, но народ пишет следующие нюансы (авто перевод):

Типичный VGA основе, с низким разрешением ЭЛТ-монитор будет перерисовать экран 60 раз в секунду, используя электронный пучок, который подметает по экрану одной линии одновременно. TFT-мониторы работают по-разному, но сигнал VGA по-прежнему основывается на идее электронного пучка. Сроки имеет решающее значение: Одна строка дисплея занимает 24 мкс, и сопровождается 7,75 мкс перерыва называется горизонтальным периодом гашения. После того, как 480 таких линий, есть длительный перерыв (1428.75 мкс, равный 45 полных линий отображения), прежде чем все начинается снова. Два цифровых сигналов используются для синхронизации отправителя (графическая карта, пользовательские демо аппаратное и т.д.) и приемник (монитор). Их называют горизонтальной синхронизации и вертикальные сигналы синхронизации. Это нормально немного отклоняться от стандартных значений синхронизации до тех пор, как вы держите синхронизации сигналов устойчивым.

Микроконтроллер работает на частоте 20 МГц. Если перевести цифры выше в тактовых циклов, мы получаем 480 циклов видимых пикселей, 155 циклов горизонтальной прикрывать и 45 полных линий отображения на сумму вертикального бланкирования - но в те строки, которые вы должны держать генерации импульсов горизонтальной синхронизации,. Из-за ошибок rouding, мы получим частоту кадров 59,99 Гц, но это хорошо в пределах допуска компьютерного монитора.

http://www.linusakesson.net/scene/craft/
Есть задержка на сигнал гашения.

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

+1

40

Здесь есть какой-то пример/исходники для баскома, но надо регаться чтобы скачать.

+1

41

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

Здесь есть какой-то пример/исходники для баскома, но надо регаться чтобы скачать.

Вот код.
Код:
Dim U As Word
Dim A As Word
Dim Q As Byte
Config Portb = Output
Config Portd = Output
Config Timer0 = Timer , Prescale = 8
Config Timer1 = Pwm , Pwm = 8 , Compare A = Set , Compare B = Set , Prescale = 64

On Timer0 Licznik Nosave

Enable Interrupts
Enable Timer0

Pwm1a = 128
Pwm1b = 128
Do
Loop
End

Licznik:

Timer0 = 203


If A > 2 Then
Reset Portb.1
Set Portb.0
Else
Set Portb.1
Set Portb.0
End If
U = A
Reset Portb.0

Shift U , Right , 4

Q = Lookup(u , Mapa1)

Portd = 0

Portd.2 = Q.7
Portd.2 = Q.6
Portd.2 = Q.5
Portd.2 = Q.4
Portd.2 = Q.3
Portd.2 = Q.2

Portd = 0
Q = Lookup(u , Mapa2)

Portd.3 = Q.7
Portd.3 = Q.6
Portd.3 = Q.5
Portd.3 = Q.4
Portd.3 = Q.3
Portd.3 = Q.2


Portd = 0
Q = Lookup(u , Mapa3)

Portd.5 = Q.7
Portd.5 = Q.6
Portd.5 = Q.5
Portd.5 = Q.4
Portd.5 = Q.3
Portd.5 = Q.2

Portd = 0

 Incr A
If A = 768 Then A = 0

Portd = 0

Return

Mapa1:                                                      'RED
Data 0 , 0 , 0 , 0 , 0

Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000

Data &B00000000

Data &B11110000
Data &B10001000
Data &B10001000
Data &B11110000
Data &B10100000
Data &B10010000
Data &B10001000

Data &B00000000

Data &B11111000
Data &B10000000
Data &B10000000
Data &B11100000
Data &B10000000
Data &B10000000
Data &B11111000

Data &B00000000

Data &B11110000
Data &B10001000
Data &B10001000
Data &B10001000
Data &B10001000
Data &B10001000
Data &B11110000

Data &B00000000

Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000

Data &B00000000

Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000


Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0


Mapa2:                                                      'GREEN
Data 0 , 0 , 0 , 0 , 0
Data &B01110000
Data &B10001000
Data &B10000000
Data &B10011000
Data &B10001000
Data &B10001000
Data &B01110000

Data &B00000000

Data &B11110000
Data &B10001000
Data &B10001000
Data &B11110000
Data &B10100000
Data &B10010000
Data &B10001000

Data &B00000000

Data &B11111000
Data &B10000000
Data &B10000000
Data &B11100000
Data &B10000000
Data &B10000000
Data &B11111000

Data &B00000000

Data &B11111000
Data &B10000000
Data &B10000000
Data &B11100000
Data &B10000000
Data &B10000000
Data &B11111000

Data &B00000000

Data &B10001000
Data &B11001000
Data &B10101000
Data &B10101000
Data &B10101000
Data &B10011000
Data &B10001000


Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0

Mapa3:                                                      'BLUE
Data 0 , 0 , 0 , 0 , 0

Data &B00000000
Data &B00000000
Data &B00000000



Data &B11110000
Data &B10001000
Data &B10001000
Data &B11110000
Data &B10001000
Data &B10001000
Data &B11110000

Data &B00000000

Data &B10000000
Data &B10000000
Data &B10000000
Data &B10000000
Data &B10000000
Data &B10000000
Data &B11111000

Data &B00000000

Data &B10001000
Data &B10001000
Data &B10001000
Data &B10001000
Data &B10001000
Data &B10001000
Data &B01110000

Data &B00000000

Data &B11111000
Data &B10000000
Data &B10000000
Data &B11100000
Data &B10000000
Data &B10000000
Data &B11111000

Data &B00000000

Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000
Data &B00000000


Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0

+1

42

Чувствую, пример этот явно не на 16 мегагерцах работает  :smoke:

0

43

Да, на 20 МГц и Attiny2313.

0

44

Да, везде фигурирует частота МК не ниже 20МГц.
Если взять тиньку85, то там можно PLLом её разогнать, но на RC для такого дела - не айс.

зы: max, спасибо, оперативно помог.

Отредактировано RDW (2016-10-12 17:54:16)

0

45

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

зы: max, спасибо, оперативно помог.

Не вопрос.

0

46

Вообщем, как не крути, Xmega единственный выход.
Хотя, 320х200 точек хватило бы сполна, но предполагаю, не все мониторы его поддерживают.

0

47

Не AVR но может пригодится http://www.artekit.eu/vga-output-using-a-36-pin-stm32/

+1

48

Эх, я и тупарь...видимо осеннее  :rofl:
Вся строка за 31мс выполняется, а я один пиксель пихал с такой скоростью  :stupor:

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

0

49

Ну да...

Бросай эту осень, сроки же тебя давят...

0

50

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

Ну да...

Бросай эту осень, сроки же тебя давят...

Не могу, Xmega держит  :D , я под канифолью, есть ещё шанс!!! Сегодня по любому экран засвечу!!!! Блин... я уже как игроман на игровых аппаратах  :hobo:

Пока без таймера, но чувствую, что уже где-то рядом!!!!

Код:
$regfile = "xm256a3def.dat"
$crystal = 32000000
$hwstack = 64
$swstack = 64
$framesize = 64

Config Osc = Enabled , 32mhzosc = Enabled
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
Vout Alias Portd.5
Gsyn Alias Portd.6
Vsyn Alias Portd.4

Config Vout = Output
Config Gsyn = Output
Config Vsyn = Output


Dim Tim As Byte
Dim X As Word
Dim Y As Word
X = 1
Y = 1
Gsyn = 1
Vsyn = 1

Goto Prog:
Pixel:
Incr X
Gsyn = 0

If X = 704 Then
   Vsyn = 0
   X = 1
   Incr Y
   Else
   Vsyn = 1
End If

Gsyn = Vsyn
nop
nop
nop
nop
nop
nop
nop
nop

If X < 641 And Y < 481 Then
   Vout = 1
   Else
   Vout = 0
End If

If Y = 504 Then
      Y = 1
      Else
      Y = Y
End If


Return



Prog:

Do
Incr Tim
If Tim = 32 Then
   Tim = 0
   Gosub Pixel:
End If




Loop
End

http://sa.uploads.ru/t/Xu1AR.png

0

51

Ох лучше бы ты это всё по таймеру делал/мерял.)

0

52

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

Ох лучше бы ты это всё по таймеру делал/мерял.)

В Xmege таймеры очень тёмный лес.

Это просто жесть  :insane:
http://upyachka.ru/img/kot/41.gif

Третьи сутки колдую, сколько раз экран схватывал то, что я ему даю, но ничего не показывал и только сейчас нашел соплю на плате, которая видео сигнал коротила...  :blush:
Осциллографом замерял, было около 1 вольта, ну думаю, так и должно быть, а нет. Вот я косячище-то....

Отредактировано Ev3658 (2016-10-13 18:33:44)

0

53

Как раз в Хмегах с таймерами всё шоколадно, просто как и во всем, нужно немного привыкнуть, ибо даже регистры по другому называются.

0

54

Тему веду к завершению, но столкнулся с ужасным колдовством. Не сразу заметил, но Bascom 2.0.7.1 и 2.0.7.8 очень глючный с NOP операторами. Ещё и Xmega иногда шьётся не правильно, на версии Bascom AVR 2.0.5 и 2.0.7.1 не удалось запустить Xmega от кварца, на 2.0.7.8 ,без проблем.
От кварца вполне всё получается. Первое шаманство огрёб от амкнутого видео сигнала, второе уже хитрей, у меня всё выводилось, правда всё изображение тряслось, на следующий день узнал, что всё изображение было на RGB и Vsyn и Gsyn вообще роли не играли, как оказалось, некоторые мониторы могут работать по композиционному сигналу через зелёный видео вход.
Думаю, самое разжеванное будет тут - http://avr-start.ru/?p=4859

0

55

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

Bascom 2.0.7.1 и 2.0.7.8 очень глючный с NOP операторами

Нонсенс !

Всё время использую NOP, проблем ни разу не было, как по мне Bascom 2.0.7.1. - самая безглючная версия, т.е., глюки конечно есть, но не критичные или их можно обойти.

0

56

Я тут замер сделал VGA сигнала:
Видео сигнал одного цвета:
http://s9.uploads.ru/t/BCZNi.png
Горизонтальная синхронизация:
http://s9.uploads.ru/t/pYRUV.png
Вертикальная синхронизация:
http://s9.uploads.ru/t/pdOcn.png
Видео сигнал по отношению к горизонтальной синхронизации:
http://s4.uploads.ru/t/00b3t.png
Горизонтальная и вертикальная синхронизация:
http://s1.uploads.ru/t/MCw1z.png

0

57

Мммм...иии???...где красивая картинка? Или всё-таки пришло сознание того, что объёмы большие и скорее всего - это всё будет вяло работать? ;)

0

58

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

Мммм...иии???...где красивая картинка? ....

Пока никак не получается. Осциллограммы на 800х600 точек, а я не знаю, как в 640х480 сделать, так-то сигналы делаю подобным, но чего-то не то всё  :dontknow:

0

59

Вот, случайно наткнулся. Может пригодится? http://eldigi.ru/articles/prostoi_video_vga_adapter

+1

60

Спать не могу, есть не могу, на яву или во сне мне спокойствия не даёт VGA сигнал, VGA он везде, VGA он по всюду!!!!
Я уже в точности иммитировал видел сигнал с компа, прям втыкаю осциллограф на контроллер и на VGA выход видео карты, делаю импульсы одинаковыми по скважности, частоте, периоду, вертикальная и горизонталься совпадают почти 1:1 и всё равно два монитора не принимают сигнал  :canthearyou:
В чём собака зарыта, не понимаю. От кварца не удаётся запустить в 2.0.7.1, но сигнал вполне стабильный! Я уже скоро атомные часы на AVR сделаю с идеальным синусом  :insane:

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

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

$lib "xmega.lib"
$external _xmegafix_clear
$external _xmegafix_rol_r1014


Config Osc = Disabled , 32mhzosc = Enabled        '32MHz
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1


Vout Alias Portd.5
Gsyn Alias Portd.4
Vsyn Alias Portd.6

Config Vout = Output
Config Gsyn = Output
Config Vsyn = Output
Config Portd.7 = Output
Led Alias Portd.7


Dim Tim As Byte
Dim X As Word
Dim Y As Word
Dim B As Byte
Dim Dat As Byte
Dim Pixel As Bit
X = 1
Y = 1
Gsyn = 1
Vsyn = 1
Pixel = 0
Dat = 255

Prog:

Do

nop

nop
nop






Incr Tim



If Tim = 2 Then
   Gsyn = 1
   Elseif Tim = 4 Then
   Gsyn = 0
   Else
   nop
   'nop
End If


If Tim = 5 Then
   If X < 481 Then
      Pixel = Dat.b
      Incr B
      If B = 8 Then B = 0


      Else
      nop
      nop
      nop
      nop
      nop
            nop
            nop
            nop
      nop

      nop
      nop
      nop
      nop
      nop
      nop
      nop
      Pixel = 0
      End If

      Vout = Pixel                                          'Pixel


End If


If Tim = 17 Then
   Vout = 0
   Tim = 0
   Incr X
  If X = 482 Then
   Vsyn = 1
   Else
   nop
   'nop
  End If
  If X = 484 Then
   Vsyn = 0
      Else
   nop
   'nop
  End If

  If X = 525 Then
   X = 1
      Else
   nop
   'nop
  End If
  Else
  nop
  nop
  nop
  nop
  nop
  nop
  nop



End If


Loop
End
sva-don написал(а):

Вот, случайно наткнулся. Может пригодится? http://eldigi.ru/articles/prostoi_video_vga_adapter

Спасибо! А что там по ссылке? ..... О нет, VGA, ..... VGA везде, VGA уже туту.... с этот статьи всё и началось, VGA по всюду, спасайтесь, 60 герц 480 пикселей видимых, но есть не видимсые и 525 всего пикселей, а дальше ещё хуже, VGA.....аааааа....

http://www.tinyvga.com/vga-timing

0


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