RTV forum PL | NewsGroups PL

Wypisywanie tekstu na wyjściu kompozytowym

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Wypisywanie tekstu na wyjściu kompozytowym

Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9  Next

Atlantis
Guest

Fri Sep 21, 2018 8:00 am   



Do pewnego prostego projektu potrzebuję biblioteki, która pozwoli mi na
wysyłanie tekstu na ekran telewizora, przez najzwyklejsze wyjście
kompozytowe. Nie ma wielkich wymagań co do jakości obrazu. Wystarczy
biały tekst na czarnym tle, bez odcieni szarości, rozdzielczość na
poziomie C64. Byle tylko jitter nie rzucał się w oczy.

Kod samej aplikacji nie będzie zbyt rozbudowany, tak naprawdę chodzi o
wykonywanie paru prostych operacji i wyrzucenie wyniku na ekran TV. Nie
będzie konieczne wykorzystywanie peryferiów, może poza jednym
przerwaniem zewnętrznym.

Pobieżnie przeszukałem Internet i widzę, że paru ludzi już tego
próbowało, uzyskując całkiem imponujące efekty na mocnych procesorach w
stylu STM32 albo PIC32. Mi jednak zależy na minimalistycznej wersji,
zastanawiam się więc jaki MCU będzie absolutnym minimum.

Znalazłem parę projektów napisanych na AVR albo ośmiobitowe PIC, ale:
1) Zostały napisane jeszcze na mocno przestarzałą wersję avr-gcc i nie
kompilują się, wywalając cała masę błędów i ostrzeżeń. Dostosowanie kodu
do obecnych standardów wymagałoby trochę zachodu.
2) Zostały one napisane na jeden ze starych kompilatorów dla PIC i nie
kompilują się pod XC8. Czyli ten sam problem, co powyżej.
3) Kod został napisany w asemblerze PIC, tak więc dostosowanie tego do
własnych potrzeb nie będzie łatwe.

Ktoś zna jakieś gotowe rozwiązanie, nie licząc Arduino? Wink
Potrzebuję tylko zestawu najbardziej podstawowych funkcji do pracy w
trybie tekstowym: init(), clearscreen(), gotoxy() oraz putc().

Piotr Gałka
Guest

Fri Sep 21, 2018 9:20 am   



W dniu 2018-09-21 o 10:00, Atlantis pisze:
Quote:
Mi jednak zależy na minimalistycznej wersji,
zastanawiam się więc jaki MCU będzie absolutnym minimum.


Chodzi mi po głowie, że w 1988r brat napisał rs232 na 8748 poświęcając
8,5 rozkazu na 1 bit, aby uzyskać prędkość 57600. Z tego mi wychodzi, że
rozkaz zajmował 2us czego już zupełnie nie kojarzę.
Te 0,5 rozkazu było specjalnie wstawiane (jeden bit 8 rozkazów, kolejny
9 rozkazów) aby uzyskać typową prędkość. Bez tej zabawy może bit
mieściłby się w 6 rozkazach (nigdy nie pisałem w assemblerze - nie wiem).

Częstotliwość odchylania poziomego w klasycznym TV jest rzędu 30kHz
Czyli okres rzędu 33us. Załóżmy, że z tego 30us obszar widoczny, a 3us
na powrót.
Nie wiem jaka była rozdzielczość C64 - strzelam 300 (aby się łatwo
liczyło) pxl na szerokość ekranu. Czyli 30/300 = 100ns na pixel.
Z tego wychodzi że trzeba wystawiać kolejne bity z prędkością 10MHz.
Jeśli wystawienie bitu wymaga 6 rozkazów to procek wykonujący 1 rozkaz
na takt zegara musi chodzić z zgarem 60MHz.

Tak mi wychodzi przy założeniu realizacji zagadnienia całkiem
softwareowo. Obecne procki mają różne peryferia dające się zapewne jakoś
wykorzystać. Wystarczyło by coś co wysyła bajt szeregowo (z zegarem
10MHz) i program już nie musi zajmować się każdym bitem a dopiero
bajtem. A jak miałby coś co pozwoli wypluć serię bajtów z pamięci to
pozostaje zajmowanie się dopiero całą linijką - już nuda.

P.G.

Janusz
Guest

Fri Sep 21, 2018 9:32 am   



W dniu 2018-09-21 o 10:00, Atlantis pisze:
Quote:
Do pewnego prostego projektu potrzebuję biblioteki, która pozwoli mi na
wysyłanie tekstu na ekran telewizora, przez najzwyklejsze wyjście
kompozytowe. Nie ma wielkich wymagań co do jakości obrazu.

atxmega Ci to zrobi, w ksiązce
https://helion.pl/ksiazki/avr-uklady-peryferyjne-tomasz-francuz,avrukp.htm
jest w rozdziale 33 generowanie obrazu video, kod jest na stronie do
ściągnięcia.

--
Pozdr
Janusz

J.F.
Guest

Fri Sep 21, 2018 10:23 am   



Użytkownik "Piotr Gałka" napisał w wiadomości grup
dyskusyjnych:po2d50$1s6$1$PiotrGalka_at_news.chmurka.net...
W dniu 2018-09-21 o 10:00, Atlantis pisze:
Quote:
Mi jednak zależy na minimalistycznej wersji,
zastanawiam się więc jaki MCU będzie absolutnym minimum.

Chodzi mi po głowie, że w 1988r brat napisał rs232 na 8748
poświęcając 8,5 rozkazu na 1 bit, aby uzyskać prędkość 57600. Z tego
mi wychodzi, że rozkaz zajmował 2us czego już zupełnie nie kojarzę.

Jesli 8051 zajmowal 1us, to czemu by wczesniej nie mial trwac 2us.

Quote:
Częstotliwość odchylania poziomego w klasycznym TV jest rzędu 30kHz

15625

Quote:
Czyli okres rzędu 33us. Załóżmy, że z tego 30us obszar widoczny, a
3us na powrót.

okres 64us, na linie ok 50us

Quote:
Nie wiem jaka była rozdzielczość C64 - strzelam 300 (aby się łatwo
liczyło) pxl na szerokość ekranu. Czyli 30/300 = 100ns na pixel.
Z tego wychodzi że trzeba wystawiać kolejne bity z prędkością 10MHz.
Jeśli wystawienie bitu wymaga 6 rozkazów to procek wykonujący 1
rozkaz na takt zegara musi chodzić z zgarem 60MHz.

Piotrze, ale teraz mamy szybkie procki

http://belogic.com/uzebox/index.asp
https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/f2014/jn286_cy255/jn286_cy255/index.html

Nie ma to moze az 300 pikseli w poziomie, ale efekty i tak sa
imponujace.

Quote:
Tak mi wychodzi przy założeniu realizacji zagadnienia całkiem
softwareowo. Obecne procki mają różne peryferia dające się zapewne
jakoś wykorzystać. Wystarczyło by coś co wysyła bajt szeregowo (z
zegarem 10MHz) i program już nie musi zajmować się każdym bitem a
dopiero bajtem.

Typowy rejestr szeregowy ... tylko zegar trzeba dobrac, no i jakies
DMA by sie przydalo, albo FIFO ...

No i ciagle mozna jeszcze odtworzyc ZX81 :-)

J.

RoMan Mandziejewicz
Guest

Fri Sep 21, 2018 10:24 am   





Piotr Gałka
Guest

Fri Sep 21, 2018 10:37 am   





J.F.
Guest

Fri Sep 21, 2018 10:48 am   



Użytkownik "Piotr Gałka" napisał w wiadomości grup
dyskusyjnych:po2hl9$3mu$1$PiotrGalka_at_news.chmurka.net...
W dniu 2018-09-21 o 12:24, RoMan Mandziejewicz pisze:
Quote:
Częstotliwość odchylania poziomego w klasycznym TV jest rzędu 30kHz
15625 Hz

Nie pamiętałem. Wpisałem w Google i pierwsze trafienie podało mi
zakres (zapewne jakiegoś monitora) od 30kHz w górę. A że było zgodne
z tym co po głowie chodziło to nie sprawdzałem dokładniej

Bo sie kiedys monitory komputerowe urwaly od TV.
Najpierw byla EGA, potem VGA i SVGA mialy 31-35 kHz, potem to juz
stracilem rachube :-)

Quote:
Nie wiem jaka była rozdzielczość C64 - strzelam 300 (aby się łatwo
liczyło) pxl na szerokość ekranu. Czyli 30/300 = 100ns na pixel.
Z tego wychodzi że trzeba wystawiać kolejne bity z prędkością
10MHz.

Podziel przez 2.

OK. Ale w takim przypadku zwiększyłbym też liczbę pixli na ekran do
600 (bo 300 wydaje mi się zaniżone) i znów wyjdzie 10MHz.

Spectrum mialo 256. Fakt, ze duze marginesy.

Atari 8 bit ... hm, czy nie ~7MHz zegara pikslowego, bo sie nakladalo
na podnosna koloru ...

Zalezy jaki tekst chcemy - ma byc duzo literek, czy duze literki :-)

J.

Piotr Gałka
Guest

Fri Sep 21, 2018 10:53 am   



W dniu 2018-09-21 o 12:23, J.F. pisze:
Quote:
Chodzi mi po głowie, że w 1988r brat napisał rs232 na 8748 poświęcając
8,5 rozkazu na 1 bit, aby uzyskać prędkość 57600. Z tego mi wychodzi,
że rozkaz zajmował 2us czego już zupełnie nie kojarzę.

Jesli 8051 zajmowal 1us, to czemu by wczesniej nie mial trwac 2us.

Ja nie neguję, że mógł. Tylko napisałem, że nie kojarzę. Jakby ktoś mnie
zapytał ile trwał rozkaz w 8748 to bym chyba sądził, że 1us. Ale może
dawaliśmy wolniejszy od max kwarc. Nie pamiętam, a szukać mi się nie chce.

Quote:
Piotrze, ale teraz mamy szybkie procki

Pytanie było:
"Mi jednak zależy na minimalistycznej wersji,
zastanawiam się więc jaki MCU będzie absolutnym minimum."
P.G.

J.F.
Guest

Fri Sep 21, 2018 10:58 am   



Użytkownik "Piotr Gałka" napisał w wiadomości grup
dyskusyjnych:po2iip$449$1$PiotrGalka_at_news.chmurka.net...
W dniu 2018-09-21 o 12:23, J.F. pisze:
Quote:
Piotrze, ale teraz mamy szybkie procki

Pytanie było:
"Mi jednak zależy na minimalistycznej wersji,
zastanawiam się więc jaki MCU będzie absolutnym minimum."

Ale ja tez nie proponuje jakis GHz, skoro wystarcza 20MHz.
Przyklady miales.

Czasy 8051 sie skonczyly Smile
Choc i na nim z wykorzystaniem rejestru szeregowego chyba by sie dalo
:-)




J.

jacek pozniak
Guest

Fri Sep 21, 2018 11:50 am   



Nie jest to trywialne, nawet jeśli chcesz tylko czarno biały tekst.
Wszelkie rozwiązania na słabych CPU wymagają wsparcia sprzętowego albo
stosowania różnych trików, które nie ułatwiają programowania głównego wątku
programu.

jp


Atlantis wrote:

Quote:
Do pewnego prostego projektu potrzebuję biblioteki, która pozwoli mi na
wysyłanie tekstu na ekran telewizora, przez najzwyklejsze wyjście
kompozytowe. Nie ma wielkich wymagań co do jakości obrazu. Wystarczy
biały tekst na czarnym tle, bez odcieni szarości, rozdzielczość na
poziomie C64. Byle tylko jitter nie rzucał się w oczy.

Kod samej aplikacji nie będzie zbyt rozbudowany, tak naprawdę chodzi o
wykonywanie paru prostych operacji i wyrzucenie wyniku na ekran TV. Nie
będzie konieczne wykorzystywanie peryferiów, może poza jednym
przerwaniem zewnętrznym.

Pobieżnie przeszukałem Internet i widzę, że paru ludzi już tego
próbowało, uzyskując całkiem imponujące efekty na mocnych procesorach w
stylu STM32 albo PIC32. Mi jednak zależy na minimalistycznej wersji,
zastanawiam się więc jaki MCU będzie absolutnym minimum.

Znalazłem parę projektów napisanych na AVR albo ośmiobitowe PIC, ale:
1) Zostały napisane jeszcze na mocno przestarzałą wersję avr-gcc i nie
kompilują się, wywalając cała masę błędów i ostrzeżeń. Dostosowanie kodu
do obecnych standardów wymagałoby trochę zachodu.
2) Zostały one napisane na jeden ze starych kompilatorów dla PIC i nie
kompilują się pod XC8. Czyli ten sam problem, co powyżej.
3) Kod został napisany w asemblerze PIC, tak więc dostosowanie tego do
własnych potrzeb nie będzie łatwe.

Ktoś zna jakieś gotowe rozwiązanie, nie licząc Arduino? Wink
Potrzebuję tylko zestawu najbardziej podstawowych funkcji do pracy w
trybie tekstowym: init(), clearscreen(), gotoxy() oraz putc().

--
jp

www.flowservice.pl
www.flowsystem.pl

Marek
Guest

Fri Sep 21, 2018 12:00 pm   



On Fri, 21 Sep 2018 10:00:59 +0200, Atlantis <marekw1986NOSPAM_at_wp.pl>
wrote:
Quote:
2) Zostały one napisane na jeden ze starych kompilatorów dla PIC i
nie
kompilują się pod XC8. Czyli ten sam problem, co powyżej.

Podeślij ten stary kod który nie chce się kompilować na xc8

--
Marek

Marek
Guest

Fri Sep 21, 2018 12:06 pm   



On Fri, 21 Sep 2018 10:00:59 +0200, Atlantis <marekw1986NOSPAM_at_wp.pl>
wrote:
Quote:
zastanawiam się więc jaki MCU będzie absolutnym minimum.

A musi być mcu? Są dedykowane kości generujące sygnał video z bitmapy
przesłanej z dowolnego mcu. Bitmapa może być nawet 1x1

--
Marek

Atlantis
Guest

Fri Sep 21, 2018 12:14 pm   



On 21.09.2018 14:00, Marek wrote:

Quote:
Podeślij ten stary kod który nie chce się kompilować na xc8

Bodajże to była ta biblioteka:
http://www.micro-examples.com/public/microex-navig/doc/089-pic-pal-tv

Nieco inna konwencja, jeśli chodzi o nazewnictwo rejestrów. Niby dałoby
się to przerobić, nie wiem jednak, czy nie szkoda na to czasu. Wink

Atlantis
Guest

Fri Sep 21, 2018 12:16 pm   



On 21.09.2018 14:06, Marek wrote:

Quote:
A musi być mcu? Są dedykowane kości generujące sygnał video z bitmapy
przesłanej z dowolnego mcu.  Bitmapa może być nawet 1x1

Oczywiście, że nie musi. Ważne, żeby taki układ nie kosztował fortuny i
był dostępny bez konieczności zamawiania z drugiego końca świata przez
eBay albo jakiś drogi sklep internetowy. Wink

ToMasz
Guest

Fri Sep 21, 2018 12:33 pm   



Quote:
Ktoś zna jakieś gotowe rozwiązanie, nie licząc Arduino? Wink
dlaczego nie arduino? serio pytam. kiedyś podobno sejm rozpisał konkurs

na dostawę telefonów. Poszło zaproszenie do wszystkich telefonicznych
firm które mają przedstawicelstwo w Polsce. sęk w tym że warunek
must-have był... system iOS.

ToMasz

Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Wypisywanie tekstu na wyjściu kompozytowym

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map