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

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

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

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


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


ТВ выход на bascom avr

Сообщений 361 страница 390 из 413

361

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

0

362

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

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

Да скорость вполне нормальная, на экране замедляю.
Сам не знаю, но действительно есть проблема с памятью, почему-то адрес массива не правильно иногда выбирается.
Решил попробовать сделать видео карту UART, так будет проще посылать команды рисовать квадраты, закрашенные квадраты и всё такое.
Кстати, можно адаптировать под какой нибудь графический LCD, которые поддерживается в Bascom, как бы многодрыг не проблема, выводов у Xmega256 навалом.

0

363

немного не по теме: а где покупали Xmega? на АлиЭкспресс эту версию чипа не нашел...

0

364

1 штука: https://ru.aliexpress.com/item/Free-Shi … 04483.html
10 штук: https://ru.aliexpress.com/item/10PCS-D7 … 85751.html камень по 262 рубля выходит

0

365

Почти 50 американских рублей за 10 МК, многовато как-то. Вдобавок у этого продавца никто не покупал и что пришлют неизвестно.

0

366

Ну я бы А3 вообще бы не брал, сразу А1 или в основном А4. Трешка по мне как-то недочто... В теме как понимаю он используется по принципу "что было с норм количеством SRAM".

0

367

Ну в A3 есть квадратурная дешифрация, как раз мне это и надо было, да и мануалище на 300 с лишним страниц на русском к этой серии.
Вообщем некоторые переменные плохо себя ведут (. Наверно из-за кучи постоянных прерываний.

0

368

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

да и мануалище на 300 с лишним страниц

На некоторые МК, даташиты на несколько тысяч страниц...

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

Вообщем некоторые переменные плохо себя ведут (. Наверно из-за кучи постоянных прерываний.

Случайно в эти переменные не происходит запись из основного кода и прерываний? Особенно модификация бит.

0

369

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

в A3 есть квадратурная дешифрация, как раз мне это и надо было

Вроде из этого документа: http://www.atmel.com/images/atmel-8331- … manual.pdf
Она много где ещё есть.

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

Ну в A3 есть квадратурная дешифрация, как раз мне это и надо было, да и мануалище на 300 с лишним страниц на русском к этой серии.
Вообщем некоторые переменные плохо себя ведут (. Наверно из-за кучи постоянных прерываний.

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

0

370

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

Вроде из этого документа: http://www.atmel.com/images/atmel-8331- … manual.pdf
Она много где ещё есть.

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

Я ща, допилю, чуток комментариев натыкаю и выложу. На всякий случай вот - https://yadi.sk/d/ztw4auUG3KWR6k
Разобрался немного, оказалось значения 64 в $hwstack мало, а вот 128 тоже мало, но 156 и даже 215 вроде достаточно и вот:
http://s9.uploads.ru/t/8a3eN.jpg

Есть простой алгоритм рисования косой линии?  :blush:

Отредактировано Ev3658 (2017-06-27 17:02:07)

+2

371

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

Есть простой алгоритм рисования косой линии

Хм, только в голове, сходу в инете не нашел что-то.  :huh:

0

372

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

Есть простой алгоритм рисования косой линии?

https://ru.wikipedia.org/wiki/Алгоритм_Брезенхэма
https://ru.wikipedia.org/wiki/Алгоритм_Ву

+1

373

Пусть всё будет так как мы захочем
Путсть Bascom компилит всегда,
Я  опять, сегодня этой ночью
Ну а в прочем....
Следущей ночью....
Если не глюкнет....
Я пилю VGA  :rofl:

Эх.. какие возможности!!!! АААААА  :idea:
Спидометр с параметрами для машины
ЭКГ приставка
LCD монитор с кучей символов и букв
UART терминал
Живая морда на старом VGA мониторе
Тупой осциллограф и измеритель
и т.д.  :glasses:

+1

374

Буду рад, если поделитесь наработками в общении 2х контроллеров.
По идее можно без обратной связи.
три режима:
1.Текстовый
2.Графический
3.Доступ к памяти и битовые операции

Как механизм вывода VGA сигнала контроллер уже работает, но он работает на другой частоте (40мГц), связь без многодрыга не получается (

0

375

На что я тут случайно налетел: https://www.seeedstudio.com/SeeedStudio … -2570.html
Вся плата 10 долларов, а могёт выводить HDMI с кучей разрешений. Хотя по датащиту, тамошний чип может работать от 480 строк.

0

376

Вот и видео карта в завершении, правда есть некоторые глючи, надеюсь кто нибудь допилит.
Ещё немного и выложу готовый проект, вот бы на Xmega32 перевести, но в ней памяти мало, прям впритык, хотя если использовать как видео память , то она подойдёт.
По USART работает быстро, 115200 - и то не успевает на полной скорости обрабатывать, приходится придерживать передачу отдельным битом).
Кто хочет проект допилить, правда нужна Xmega256A3 (16кБ ОЗУ) и кварц 14,31818.
Сейчас получилось:
-272х240 точек
-32х20 букв
-управление по UART + один вывод для паузы передачи
Общение простое:
Рисование линии начинается с "L", далее два байта X1, байт Y1, два байта X2,байт Y2, байт режима, байт пропуска
- Байт режима - 0=линия,1=квадрат,2=заполненный квадрат
- Байт пропуска - 0=стирание,1=линия,>1=пунктир

В разработке:
- Рисование точки начинается с "P", далее два байта X и 1 байт Y
- Рисование стирание точки начинается с "С", далее два байта X и 1 байт Y
- Вывод текста начинается с "T", байт X, байт Y и текстовая строка до 34 байт

Этот режим так-то не нужен, но если реализовывать на Xmega32, то в принципе реально:
-Запись байта начинается с "B", байт L,байт H и записываемый байт
-Чтение байта байта начинается с "M", байт L,байт H b и ждём приёма.

0

377

А ведь ранее требования были куда более другими, высокими.)
О глюках что-то ничего не сказал.

0

378

Ну они есть, всё-же ресс

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

...О глюках что-то ничего не сказал.

На полной скорости передачи по Uart всё-же есть подрыгивание, не значительные, но есть, в принципе можно убрать если обрабатывать линии и точки в бордюрах.
Высокие требования - да, но Xmega будет просто видео памятью, выводить всё будет, но вот скорость рисования и вообще связь с этим контроллером, вообщем не знаю как сделать.
Сейчас уже есть возможность подцепить VGA монитор и даже на этом контроллере организовать сенсорный экран, то-есть некоторые проекты можно делать довольно серьёзные, с графиками и т.п.

0

379

Вообщем понял в чём глюк при выводе (сдвижение пикселей), почему-то на кварце 5мгц х9 вообще идеал, а на 14.31818х3 уже помехи, выручил 110592х4, думаю он максимум нужное.

0

380

Ничего удивительного:

110592х4 = 442368
143182х3 = 429546
5мгц х9 = 45

Ты пытаешься разогнать МК, от чего ему плохеет. Ещё, когда я игрался, заметил, что довольно сильно начинает подглючивать, когда ставишь большой множитель. Т.е. есть индивидуальные особенности кристалла/партии по этим двум параметрам.
А так конечно было бы круто, поставить часовой кварц, а там его гнать до 32МГц. ;)

0

381

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

Ничего удивительного:

110592х4 = 442368
143182х3 = 429546
5мгц х9 = 45

Ты пытаешься разогнать МК, от чего ему плохеет. Ещё, когда я игрался, заметил, что довольно сильно начинает подглючивать, когда ставишь большой множитель. Т.е. есть индивидуальные особенности кристалла/партии по этим двум параметрам.
А так конечно было бы круто, поставить часовой кварц, а там его гнать до 32МГц.

Наоборот, от кварца 5 мГц изображение стабильное (45мгц), а вот от 14мГц уже не подходит, 11  мгц немного не то, но работает. Само собой конденсаторы под кварцы подпаивал.
Причём от 16мГц кварца или 14мГц кварца контроллер может загрузится с белым экраном (в памяти глюки), но вот от 5мГц умноженного в 9 раз глюков вообще нет.

0

382

В этом недостаток, от чипа к чипу разные результаты, сомнительная повторяемость. ( У меня вообще от часового кварца ядро не хотело работать (запускаться), только как вспомогательное без проблем работало. Никакие настройки не помогали.

0

383

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

....от чипа к чипу разные результаты.....

Походу дело в питании, понял это, когда PDI переключаю от контроллера к контроллеру, через него запитка идёт.

0

384

Не забывай про периферию, может начать хромать.

0

385

Ну наконец мне приехала XMEGA-A1 Xplained, она оказалась такая маленькая (коробка от программатора была раз в 16 больше)...радости не было придела, пока не попытался ей поиграться и тут начались проблемы (с которыми ковырялся два вечера)...ладно.
Взял её с расчетом как раз под VGA, чтобы было больше памяти. Пока руки не дошли до экспериментов.

0

386

Крутая штука, а мне всё никак А1 не привезут, так-то только адрес расширить и убрать счётчик второй строки и будет VGA )

0

387

Вот, без циркуля, так как пока он не нужен:

То, что принимает:

Код:
Config Com6 = 115200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8
Open "COM6:" For Binary As #1
On Usarte1_rxc Serialinput
Enable Usarte1_rxc
...
...
...
...

Serialinput:
Btx = Usarte1_data                                          ' Inkey(#1)
Cts = 1
Incr Tmtx
Dtx(tmtx) = Btx
Return


То, что отправляет:

Код:
Sub Point(byval Xx As Word , Byval Yy As Byte , Byval Dd As Byte)
Ohranatx = 0
Do
Incr Ohranatx
Waitus 10
Loop Until Cts = 0 Or Ohranatx = 255
Put #1 , 80
Brs = Low(xx)
Put #1 , Brs
Brs = High(xx)
Put #1 , Brs
Put #1 , Yy
Put #1 , Dd

End Sub

Sub Liner(byval Xx1 As Word , Byval Yy1 As Byte , Byval Xx2 As Word , Byval Yy2 As Byte , Byval Dl As Byte , Byval Tire As Byte )
Ohranatx = 0
Do
Incr Ohranatx
Waitus 10
Loop Until Cts = 0 Or Ohranatx = 255

Put #1 , 76                                                 '"L"
Put #1 , Low(xx1)
Put #1 , High(xx1)
Put #1 , Yy1
Put #1 , Low(xx2)
Put #1 , High(xx2)
Put #1 , Yy2
Put #1 , Dl
Put #1 , Tire

End Sub

Sub Text(byval Xxx As Byte , Byval Yyy As Byte , Byval Ntt As Byte , S As String * 34 )
Ohranatx = 0
Do
Incr Ohranatx
Waitus 10
Loop Until Cts = 0 Or Ohranatx = 255
Put #1 , 84                                                 '"T"
Put #1 , Xxx
Put #1 , Yyy
Put #1 , Ntt
Print #1 , S;
Put #1 , 10
End Sub

Sub Clsvga()
Ohranatx = 0
Do
Incr Ohranatx
Waitus 10
Loop Until Cts = 0 Or Ohranatx = 255
Put #1 , 67                                                 '"C"
Put #1 , 76                                                 '"L"
End Sub


Если надо, выложу сырые исходники.
Печатка назревает с 4мя аналоговыми входами для сенсора (на всякий случай) и выходы для опроса кнопок.

+3

388

Видно пришлось прибегнуть к помощи бутылки (что возле монитора на видео) чтобы все это сделать. :D
Шутка. Ни в коем случае не хотел обидеть.

0

389

Молодец какой, сделал почти VGA текстовый дисплей. :)
Обмена по UART для графики конечно слабовато, а учить МК внутри рисовать примитивами целую картинку - устанешь. ( Может данные грузить по SPI? Быстрее выйдет в разы, больше за раз данных можно в МК пропихнуть.

0

390

Бутылка под спирт )))

Не прокатит SPI, он по USART 115200 больше думает, чем передаёт, можно выше скорость дать, но смысла нет.
Карта сама рисует:
-Буквы
-Линии
-Квадраты
-Заполненные квадраты
-Точки

С SPI может было бы быстро общаться с памятью карты, в принципе на более высоком разрешении только это и останется, а тут ресурсов хватает на автоматизацию.
Сам принцип простой, к примеру рисование линии:
"L",Два байта X1,байт Y1,два байта X2,байт Y2, режим (0-линия,2-квадрат,3-заполн.квадр.), байт стирания (>0 стереть)
Рисование точки:
"P",два байта X, байт Y, байт стирания (>0 стереть)
Текст:
"P",байт X,байт Y, байт режима (1=инверсный),текст...текст...до 34 симв. , chr(10)
Ну вот так вот как-то.
Правда как только отсылается первый байт, перед отправкой следующего пакета нужно проверить занятость VGA карта, она на отдельном выводе держит сигнал когда занята.

+1


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