Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trGenel KategoriProjeAmiga HDMI Scandoubler (HDMI-520) (Son)
Sayfa: 1 [2] 3 4 ... 92   Aşağı git
Yazdır
Gönderen Konu: Amiga HDMI Scandoubler (HDMI-520) (Son)  (Okunma Sayısı 160705 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
emarti
Uzman
*****
Mesaj Sayısı: 2.063


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #15 : Temmuz 27, 2017, 09:26:39 ÖÖ »

@delimawi abi sipariş için test sürecini bekleyelim mi yoksa aliexpressten siparişle hemen başlayın mı dersin?
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

My Retros
     Atari 600XL | 800XL | 1040STFM,
     C128, C64C, C64G, 1541, 1541-II, 1571,
     A500, A600x2 (Furia, Std), A1200x2 (Microbotic, Std)
     ZX Spectrum 48K
Gökçe Bozkurt
Genel Yönetici
*****
Mesaj Sayısı: 2.882


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #16 : Temmuz 27, 2017, 09:41:15 ÖÖ »

İşin elektronik kısmından birşey anlamasamda, mantık kısmını ve gelişimini okumak çok güzel.
Emeğine sağlık..

30 sene scandoubler sıkıntısı çekmiş amigacıların ucuz yollu sonuca ulaşıyor olması müthiş.

kısmet 2017 e imiş..

konuyu değiştirmek istemem ama merakım var..
bu konuya vakıf ve bilgili olan delimavi

ekran kartı tasarlamak çok mu zor ?

VA2000: Open Source FPGA Graphics Card for Amiga Computers.
http://mntmn.com/va2000/
http://mntshop.bigcartel.com/product/mnt-va2000-amiga-graphics-card-zorro-ii-iii-batch-2-preorder

nitekim üst linkte 2000 için yapılmış open source bir ekran kartı var.
çok yeni bir proje
maliyeti nedir bimiyorum ama satış fiyatı 189€

bu arada 1200 ve 4000 için yine yeni yapılmış scan doubler (internal)
https://www.amedia-computer.com/en/accueil/272-scanplus-aga-for-amiga-1200-4000d.html
Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A603
A500+|ATO
Agony
Uzman
*****
Mesaj Sayısı: 2.233


Amiga gibi yar, Commodore gibi de yadigar olmaz.


Üyelik Bilgileri
« Yanıtla #17 : Temmuz 27, 2017, 09:59:40 ÖÖ »

Uzun zamandır beklediğim bir proje. Harika gerçekten. Elinize sağlık. Beni ilk sıraya alın lütfen. Hatta mümkün olursa iki tane bile alırım.

Kargo işi içinde bir fikrim var:

Siparişleri bir kişi verse, fakat 5'li paketler halinde farklı adreslere istesek? Yani şöyle, diyelim biri 20 adet sipariş verir. 5 tanesini benim adrese, 5 tanesini başkasına, 5 tanesi daha başkasına...vs En sonunda gelen kartları sana göndeririz? Çok mu zahmetli olur?
Logged

ibo1973
Uzman
*****
Mesaj Sayısı: 1.862


Üyelik Bilgileri WWW
« Yanıtla #18 : Temmuz 27, 2017, 10:45:59 ÖÖ »

Gökçe linkteki scan doubler biz fani insanların erişebileceği bir fiyat gibi durmuyor yani açıkcası çok yüksek fiyatı.

Deli mavi çok güzel projeler bunlar. Eğer mümkünse fpga konusunu öğrenmek istiyorum vakit buldukça ancak türkçe kaynak çok kısıtlı eğer yapabilirsen daha öğretici açıklamalar yazarsan iyi olur .
Logged

Eşimin videolarını çektiği youtube yemek tarifleri kanalımız
http://www.youtube.com/channel/UCWeURdgKjzxe9490Pb5KTPA?view_as=subscriber
byeni
Üye
****
Mesaj Sayısı: 458



Üyelik Bilgileri WWW
« Yanıtla #19 : Temmuz 27, 2017, 10:52:26 ÖÖ »

Gece görünce siparişi geçtim,listeye eklenmeyi bekliyorum 
Logged
Gökçe Bozkurt
Genel Yönetici
*****
Mesaj Sayısı: 2.882


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #20 : Temmuz 27, 2017, 11:07:34 ÖÖ »

ibo
gösterdiğim scan doubler fiyatının içinde vergi var..
vergiyi düşürsen rakam daha uyguna gelir.. misal 90€

ayrıca ticari bir ürün.satış yapan web sitelerininde komsiyonunu düşmek gerekir %20 kazancı olsa 72 avro yaptı

bunu üreten yapan kişi (mucidi) minimum %30 para kazanıyordur..
yani maliyet 50 avro

şimdi biz 13$ a alt altera shieldı alıyoruz.
db23f için 2-5$ vereceğiz.
bu pcb nin kendi ve kompenentleri de minimum 30$ tutar..

sonuç minimum 50$ lık alışveriş var lehim işi işçilik falan ayrı..

sonuç yukarıdaki ürün ile hemen hemen aynı fiyat maliyeti var gibi düşünüyorum




Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A603
A500+|ATO
appiah4
Uzman
*****
Mesaj Sayısı: 1.908



Üyelik Bilgileri
« Yanıtla #21 : Temmuz 27, 2017, 11:09:49 ÖÖ »

Bulabildiğim en ucuz FPGA geliştirme kiti $12.20: https://www.aliexpress.com/item/ALTERA-FPGA-CycloneII-EP2C5T144-Minimum-System-Development-Board-Learning-Board/32314947609.html
Logged

A500:Rev6|+512K|ACA500+|C1084S
i386:Am386SX25|4M|GD5402|ES688|MuntPi3
i486:U5S33|8M|GD5428|YMF719|DB-S2
i586:P133|32M|T64+/MX2|V1|CT3980/32M
i686:K6-2/400|128M|V2/SLI|CT4520/32M
S370:P3-1200|384M|GF4-4200|MX300
S754:A3700+|2G|X1950PRO|SB0350
LW3D
Genel Yönetici
*****
Mesaj Sayısı: 10.184


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #22 : Temmuz 27, 2017, 11:51:30 ÖÖ »

ibo
gösterdiğim scan doubler fiyatının içinde vergi var..
vergiyi düşürsen rakam daha uyguna gelir.. misal 90€

ayrıca ticari bir ürün.satış yapan web sitelerininde komsiyonunu düşmek gerekir %20 kazancı olsa 72 avro yaptı

bunu üreten yapan kişi (mucidi) minimum %30 para kazanıyordur..
yani maliyet 50 avro

şimdi biz 13$ a alt altera shieldı alıyoruz.
db23f için 2-5$ vereceğiz.
bu pcb nin kendi ve kompenentleri de minimum 30$ tutar..

sonuç minimum 50$ lık alışveriş var lehim işi işçilik falan ayrı..

sonuç yukarıdaki ürün ile hemen hemen aynı fiyat maliyeti var gibi düşünüyorum


Nasılsa developerlar burada bedava
Bence çok geniş kitleyi ilgilendirmeyen, spesifik çözümler için developer zamanı israfına gerek yok.
Logged

BioMenace
Uzman
*****
Mesaj Sayısı: 1.197



Üyelik Bilgileri
« Yanıtla #23 : Temmuz 27, 2017, 13:26:53 ÖS »

Projeler çok iyi tanımlanmış.

Harici Gotek bir süredir benim de aklımdaydı, fakat benim gibi bir acemi için en iyisi senin projeni takip etmek, deliMawi.

HDMi projesi için FPGA siparişini verdim, sabırsızlanıyorum.
Logged

Alınıklarım: https://goo.gl/UoWo8n
Satılıklarım: https://goo.gl/kDMfMp
Gökçe Bozkurt
Genel Yönetici
*****
Mesaj Sayısı: 2.882


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #24 : Temmuz 27, 2017, 13:28:58 ÖS »

ya siparişler çinden LW3D ye olduğu gibi 1 haftada gelirse ?
ya 1 ay delimawi nin projeyi bitirmesini beklemek, sonrada 1 ay pcblerin gelmesini beklemek zorunda kalırsak ?

kafayı yerim ben ..
o yüzden daha sipariş vermedim ..
belki akşam
Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A603
A500+|ATO
merty
Üye
**
Mesaj Sayısı: 11


Üyelik Bilgileri
« Yanıtla #25 : Temmuz 27, 2017, 13:47:23 ÖS »

cıkmasını heyecanla bekliyorum
Logged
emarti
Uzman
*****
Mesaj Sayısı: 2.063


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #26 : Temmuz 27, 2017, 14:55:22 ÖS »

Bu aralar Çin'den siparişler 7-10 günde geliyor.
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

My Retros
     Atari 600XL | 800XL | 1040STFM,
     C128, C64C, C64G, 1541, 1541-II, 1571,
     A500, A600x2 (Furia, Std), A1200x2 (Microbotic, Std)
     ZX Spectrum 48K
eins
Uzman
*****
Mesaj Sayısı: 1.787


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #27 : Temmuz 27, 2017, 23:43:35 ÖS »

@delimawi: Ben aslında butonlara cevap veren basit bir işlevi olur diye düşünmüştüm. Kullandığın video çipinin anladığım kadarıyla I2C üstünden bahsettiğin overlay vesaire için desteği var herhalde değil mi? Yoksa PIC ile nasıl görüntü bindireceksin?

Dediğin gibi biraz bellek (ram/rom) gereksinimi olduğu noktada bu fpga biraz zorlayabilir.

Bu entegrenin ovrlay açısından sağladığı bir özellik yok. Ben overlay işini şu şekilde yapıyorum; Ekranda overlayin olacağı kısıma ait bir bölge belirliyorum. Örneğin ekranın orta alt kısmında 128x64 pixellik bir alan. FPGA içerisinde 128x64 bitlik bir memory oluşturuyorum. FPGA normal işini yapıyorken yani gelen veriden HDMI sinyali oluşturuyorken bu bölgenin üzerinden geçiyorsa gelen sinyal yerine ilgili hafıza bölgsindeki değerleri encode ediyor. Bu hafıza bölgesinin içerisinde ne olacağına da PIC karar veriyor ve FPGA içerisine gönderiyor.

Kısaca logic ve içerik PIC'den geliyor, timing ve overlay atmayı FPGA yapıyor. PIC açısından ilgili alan sanki 128x64 LCD grafik ekranmış gibi kabul etmek yetiyor. Tüm menu mantığı ve içeriği ve hatta ilgili menulerde yapılacak değişiklikler neticesinde I2C üzerinden video processor entegresinin configurasyonu PIC in görevi oluyor...

Bir tane bana ayırın lütfen fpga siparişini verdim

Sıkıntı yok, bu sefer toptan sipariş açma ve benzeri dertler olmayacağı için herkese yetecek kadar üretiriz...

Pıc vs FPGA e core atmak arasında ltency farkı olur mu? Malum scandoubler diyince en onemli konu latency.  Her 30 ms bir frame ediyor ve 2 frame bile bazı oyunları oynanmaz kılabilir.

Hiç bir fark olmaz zira bu konuştuğumuz konu sadece cihazın on screen menusunun nasıl çalışacağı ile ilgili. Bunu haricinde gene önümüzdeki günlerde yazar çizeriz detaylıca ama bu HDMI conversion işlemi esnasında en önemsediğim konu bir framebuffer kullanmamak. Bunun temelde iki sebebi var. Hem ekstra bir RAM kullanılmadığı için sistem daha basit ve ucuz oluyor, hem de araya ekstra bir latency girmemiş oluyor. Bu sistemde beklenen gecikme en fazla 1 raster satırı olacaktır. Yani 64 uSaniye.

Ancak kullandığınız TV yada monitor kaynaklı bir latency olabilir, bu konuda zaten elimizde olan birşey yok. Sadece game mode vb özelliği var ise bildiğim kadarıyla TV tarafındaki gecikme min seviyelere çekilebiliyor...


@delimawi abi sipariş için test sürecini bekleyelim mi yoksa aliexpressten siparişle hemen başlayın mı dersin?

Siz bilirsiniz. Sonuçta bu bir arge projesi, başarısız da sonuçlanabilir. Ancak FPGA dev board her zaman işe yarayacaktır. Şaka yollu daha önce de yazmıştım. En kötü proje olmaz ve elinizde kalırsa ben satınalabilirim...

ekran kartı tasarlamak çok mu zor ?

Yok değil aslında, ama esas problem kartın tasarlanmasından öte driver desteğinin sağlanması bence. Driver yazılımı kısımına enerjim muhtemelen hiç yetmeyecektir...

bu arada 1200 ve 4000 için yine yeni yapılmış scan doubler (internal)

AGA chipset için yapılmış, şimdilik ben o kadar ilerisini planlamıyorum. Zaten bilgim de yok. Hatta 500 ve 600 dışında Amigam da yok. Ama şuna dikkat ettim, FPGA'in yanında dizi dizi RAM chipleri var. Demekki bu çözüm frame buffer kullanıyor. Bu aslında bir yerde işin kolayına kaçmak. Gelen sinyal ile üretilecek olan sinyalin bir birlerine senkron olması gerekliliğini ortadan kaldırıyor. Ancak latency ve tearing gibi başka sıkıntılar açabiliyor. Bizim çözümde frame buffer RAM olmayacak, latency olmayacak gel gelelim olabilecek tüm çözünürlük ve refresh rate değerlerini belki de destekleyemeyecek. Örneğin ECS çipsetin 10Hz ve 15Hz çıkışlarını uydurabileceğimiz bir HDMI standardı olduğunu sanmıyorum...

Kargo işi içinde bir fikrim var:
Siparişleri bir kişi verse, fakat 5'li paketler halinde farklı adreslere istesek? Yani şöyle, diyelim biri 20 adet sipariş verir. 5 tanesini benim adrese, 5 tanesini başkasına, 5 tanesi daha başkasına...vs En sonunda gelen kartları sana göndeririz? Çok mu zahmetli olur?

Toplu siparişi ben vermedikten sonra bir itirazım olmaz, bir kaç kişi bir araya gelip deneyebilir. Esasen gelen FPGA kartlarının bana gelmesine de gerek yok. 2-3 dolarlık bir programlayıcı ve free olarak indirilen bir yazılım ile proje sonunda siteden dağıtacağım dosyanın upload edilmesi yeterli. Bu konularla ilgilenip de bunu yapamayacak biri olduğunu sanmıyorum...

Ama bana soracak olursanız, 5,10 hatta 20 adet toplu sipariş mantıklı değil. Ben şu ana kadar maksimum birlikte 2 adet sipariş ettim.

Gökçe linkteki scan doubler biz fani insanların erişebileceği bir fiyat gibi durmuyor yani açıkcası çok yüksek fiyatı.

Deli mavi çok güzel projeler bunlar. Eğer mümkünse fpga konusunu öğrenmek istiyorum vakit buldukça ancak türkçe kaynak çok kısıtlı eğer yapabilirsen daha öğretici açıklamalar yazarsan iyi olur .

Bu fiyata birşey diyemem, işi ticari görüp para kazanmak hedefleniyorsa çok da abartı bir rakam değil sanki. Herkes bu paraya kıyıp alabilir mi? Ona da emin değilim...

Bizim projeye gelecek olursak, benim ticari bir beklentim yok. Dolayısı ile rakamın olabildiğince uygun olmasını hedefliyorum. Ancak benim vaktimi alacak yerler için de bir bedel almak durumundayım, örneğin dizgi, programlama test vb vb... Sonuç olarak henüz bir bütçe yapmadım ama sanki FPGA dahil rakip ürünlerin yarısı gibi birşeyler olacaktır. En azından benim beklentim bu yönde.

Tabi bu noktada maliyet düşük olacağı için projenin benim kontrolüm dışında ticarileşmesi de pek hoşuma gitmez. Projeyi bilgi saklamadan burada paylaşıyor olacağım ama bir şekilde bire bir kopyalanmasının da engellemek istiyorum.

Son olarak FPGA ile ilgili olarak elimden geldiğince öğretci olmak isterim tabiki ama her forum üyesinin beklentisi ve bilgi seviyesi farklı. Dolayısı ile yazrken ne kadar teknik detaya inmem gerektiği konusunda emin olamıyorum. Bu noktada sizler sorular ve yorumlarla yol gösteriyor olursanız ben de elimden geldiğince bildiklerimi paylaşmış olurum.

Kısaca siz sorun, şu nedir bu nasıl olur diye... Kahkaha

ya siparişler çinden LW3D ye olduğu gibi 1 haftada gelirse ?
ya 1 ay delimawi nin projeyi bitirmesini beklemek, sonrada 1 ay pcblerin gelmesini beklemek zorunda kalırsak ?

Tahmini takvim şu şekilde: Bu gece son kontrolleri yapıp PCB siparişini açacağım. Ancak test edilmediği için çok kısıtlı adet sipariş olacak. 5 yada 10 PCB. Bir terslik olmaz ise 1 ay sonra gelirler. 1-2 hafta FPGA development ve test olur. Sonra PCB ler ok ise ön talep alıp final siparişi açarız. Bu da yaklaşık 1 ayda gelir. Sonrasında 1-2 hafta içerisinde parça parça dizer gönderimlere başlarız. Yani 3 ay sonra evlere girer bence...

« Son Düzenleme: Temmuz 27, 2017, 23:48:42 ÖS Gönderen: delimawi » Logged

i_r_on
Uzman
*****
Mesaj Sayısı: 2.858



Üyelik Bilgileri WWW
« Yanıtla #28 : Temmuz 28, 2017, 00:08:46 ÖÖ »

@delimawi: Ben aslında butonlara cevap veren basit bir işlevi olur diye düşünmüştüm. Kullandığın video çipinin anladığım kadarıyla I2C üstünden bahsettiğin overlay vesaire için desteği var herhalde değil mi? Yoksa PIC ile nasıl görüntü bindireceksin?

Dediğin gibi biraz bellek (ram/rom) gereksinimi olduğu noktada bu fpga biraz zorlayabilir.

Bu entegrenin ovrlay açısından sağladığı bir özellik yok. Ben overlay işini şu şekilde yapıyorum; Ekranda overlayin olacağı kısıma ait bir bölge belirliyorum. Örneğin ekranın orta alt kısmında 128x64 pixellik bir alan. FPGA içerisinde 128x64 bitlik bir memory oluşturuyorum. FPGA normal işini yapıyorken yani gelen veriden HDMI sinyali oluşturuyorken bu bölgenin üzerinden geçiyorsa gelen sinyal yerine ilgili hafıza bölgsindeki değerleri encode ediyor. Bu hafıza bölgesinin içerisinde ne olacağına da PIC karar veriyor ve FPGA içerisine gönderiyor.

Kısaca logic ve içerik PIC'den geliyor, timing ve overlay atmayı FPGA yapıyor. PIC açısından ilgili alan sanki 128x64 LCD grafik ekranmış gibi kabul etmek yetiyor. Tüm menu mantığı ve içeriği ve hatta ilgili menulerde yapılacak değişiklikler neticesinde I2C üzerinden video processor entegresinin configurasyonu PIC in görevi oluyor...

O zaman NIOS vesaire gibi komplike çözümler yerine belki de içeri bir 6502 core'u ve kısıtlı ram/rom ile de bu iş halledilir. Hatta 6502 implementasyonundan kullanılmayacak özellikler kırpılabilir (decimal modu falan gibi). Aşina olunan sistem olduğu için de yazılım anlamında çok kasmaz. Hatta düşük clock rate'te çalışması sorun yaratmayacaksa rom'u fpga'dan kullanmak yerine serial eeprom'dan seri to paralel şeklinde bir arabirim de yapılabilir. Tabii i2c fpga içinde ne denli kolay uygulanabiliyor bilmeden biraz işkembeden sallıyorum. Herhalde kimse uğraşmayıp ya büyük fpga'i seçiyordur ya da bir microcontroller ekliyordur sisteme.

Şu an senin yaptığın uygulamalarda PIC metin harici resim falan tarzı şeyler de aktarıyor mu I2C üstünden FPGA'e?
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
eins
Uzman
*****
Mesaj Sayısı: 1.787


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #29 : Temmuz 28, 2017, 00:21:15 ÖÖ »

Şu an senin yaptığın uygulamalarda PIC metin harici resim falan tarzı şeyler de aktarıyor mu I2C üstünden FPGA'e?

Evet aslında metin kısmını da komple resim olarak aktarıyor.

Bu arada FPGA ile I2C yapılabiliyor. Hatta benim uygulamalarda kullanıyorum. Kendim yazmadım ama bulduğum bir I2C kodunu uyarladım. Bu sayede PIC, I2C üzerinden FPGA'e komut da gönderebiliyor. Örneğin scanline şiddeti vb gibi parametreleri PIC, FPGA'e I2C ile gönderiyor...

6502 benim de aklıma geldi, denemek lazım. Tek konforsuz yanı, PIC'i C ile yazabiliyorum, şimdi 6502 yaparsak oturup asm yazmak lazım. Olmaz değil tabiki ama daha uzun sürecek bir iş...

Benim PIC kodumda aşağıda bir kısmını paste ettiğim şekilde bir constant array var, bunu C64 deki char rom olarak düşünebilirsin. Tüm karakterlerin bitmap karşılıkları ve hatta bir de logo datası.

Kod:
const rom unsigned char logotop[256]=
{
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x03,0x03,0x03,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x03,0x03,0x03,0x03,0xFF,0xFF,0x13,
0x13,0x13,0x13,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0x03,0x03,0x03,0x07,0xFF,0xFF,0x03,0x03,0x03,0x03,0xF3,0xF3,0xF3,0xF3,0x03,0x03,0x03,0x03,0xF3,0xF3,0xF3,0xF3,
0x03,0x03,0x03,0x07,0xFF,0xFF,0x03,0x03,0x03,0x03,0xFF,0xFF,0x3F,0x3F,0xFF,0xFF,0x07,0x03,0x03,0x03,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x73,0xFF,
0xFF,0x83,0x03,0x03,0x03,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x03,0x03,0x03,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x30,0x30,0x30,0x30,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x30,0x30,0x30,0x30,0x3F,0x3F,0x30,
0x30,0x30,0x30,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x30,0x30,0x30,0x38,0x3F,0x3F,0x30,0x30,0x30,0x30,0x3F,0x3F,0x3F,0x3F,0x30,0x30,0x30,0x30,0x3F,0x3F,0x3F,0x3F,
0x30,0x30,0x30,0x30,0x3F,0x3F,0x30,0x30,0x30,0x30,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x38,0x30,0x30,0x30,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x30,0x30,0x30,0x38,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x30,0x30,0x30,0x30,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
};

rom const unsigned char gfxrom[]=
{
0x1F,0x11,0x1F,0x00,0x12,0x1F,0x10,0x00, // ASCII 000 Mini01
0x1D,0x15,0x17,0x00,0x11,0x15,0x1F,0x00, // ASCII 001 Mini23
0x07,0x04,0x1F,0x00,0x17,0x15,0x1D,0x00, // ASCII 002 Mini45
0x1F,0x15,0x1D,0x00,0x01,0x01,0x1F,0x00, // ASCII 003 Mini67
0x1F,0x15,0x1F,0x00,0x17,0x15,0x1F,0x00, // ASCII 004 Mini89
0x04,0x04,0x04,0x00,0x04,0x0E,0x04,0x00, // ASCII 005 Mini+-
0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00, // ASCII 006 Mini.
0x08,0x1C,0x3E,0x00,0x3E,0x1C,0x08,0x00, // ASCII 007 Mini<>
.
.
.

Bunu da yazdığım bir grafik kütüphanesi ile aşağıdaki şekilde kolayca kullanabiliyorum:

Kod:

void menu(void)
{
unsigned int tmt=0;

unsigned char menu=0;
unsigned char topidx=0;
unsigned char m,b,y,t;

FpgaSetReg(0x04,0x01); // OSD ON

refresh:
ClrWdt();
GLCDClear();
GLCDPutLogo();

for (m=0;m<13;m++)
{
// Menu Görünür mü?
if ((topidx<=m) && ((topidx+4)>=m))
{
y=15+10*(m-topidx);

switch (m)
{
case 0 : STR2RAM(str,"INPUT");
GLCDTextBox(0,y,64,0,(menu==m),str);
if (SetInput==0) STR2RAM(str,"CVBS"); else STR2RAM(str,"LUMA/CHR");
GLCDTextBox(65,y,63,0,(menu==m),str);
if (menu==m) GLCDDrawCombo(y);
break;

case 1 : STR2RAM(str,"COLOR");
GLCDTextBox(0,y,64,0,(menu==m),str);
GLCDDrawBar(65,y,48,31,SetColor);
sprintf(str,"%02d\n",SetColor);
GLCDTextBox(115,y,13,0,(menu==m),str);
break;

case 2 : STR2RAM(str,"BRIGHTNESS");
GLCDTextBox(0,y,64,0,(menu==m),str);
GLCDDrawBar(65,y,48,31,SetBrightness);
sprintf(str,"%02d",SetBrightness);
GLCDTextBox(115,y,13,0,(menu==m),str);
break;

case 3 : STR2RAM(str,"CONTRAST");
GLCDTextBox(0,y,64,0,(menu==m),str);
GLCDDrawBar(65,y,48,31,SetContrast);
sprintf(str,"%02d",SetContrast);
GLCDTextBox(115,y,13,0,(menu==m),str);
break;

case 4 : STR2RAM(str,"HUE");
GLCDTextBox(0,y,64,0,(menu==m),str);
GLCDDrawBar(65,y,48,31,SetHue);
sprintf(str,"%02d",SetHue);
GLCDTextBox(115,y,13,0,(menu==m),str);
break;

case 5 : STR2RAM(str,"SCANLINES");
GLCDTextBox(0,y,64,0,(menu==m),str);
if (SetScanlines==0) STR2RAM(str,"OFF"); else
if (SetScanlines==1) STR2RAM(str,"LOW"); else
if (SetScanlines==2) STR2RAM(str,"MID"); else STR2RAM(str,"HIGH");
GLCDTextBox(65,y,63,0,(menu==m),str);
if (menu==m) GLCDDrawCombo(y);
break;

case 6 : STR2RAM(str,"COL.EFFECT");
GLCDTextBox(0,y,64,0,(menu==m),str);
if (SetEffect==0) STR2RAM(str,"OFF"); else
if (SetEffect==1) STR2RAM(str,"MONO-GREEN"); else
if (SetEffect==2) STR2RAM(str,"MONO-AMBER"); else STR2RAM(str,"B/W");
GLCDTextBox(65,y,63,0,(menu==m),str);
if (menu==m) GLCDDrawCombo(y);
break;

case 7 : STR2RAM(str,"PAL BLEND");
GLCDTextBox(0,y,64,0,(menu==m),str);
if (SetPalBlend==0) STR2RAM(str,"OFF"); else
if (SetPalBlend==1) STR2RAM(str,"LOW"); else
if (SetPalBlend==2) STR2RAM(str,"MID"); else STR2RAM(str,"HIGH");
GLCDTextBox(65,y,63,0,(menu==m),str);
if (menu==m) GLCDDrawCombo(y);
break;

case 8 : STR2RAM(str,"INP.FILTER");
GLCDTextBox(0,y,64,0,(menu==m),str);
if (SetFilter==0) STR2RAM(str,"OFF"); else
if (SetFilter==1) STR2RAM(str,"AMP"); else STR2RAM(str,"FILT+AMP");
GLCDTextBox(65,y,63,0,(menu==m),str);
if (menu==m) GLCDDrawCombo(y);
break;

case 9 : STR2RAM(str,"CHROM.BW");
GLCDTextBox(0,y,64,0,(menu==m),str);
if (SetChrBandwidth==0) STR2RAM(str,"620KHZ"); else
if (SetChrBandwidth==1) STR2RAM(str,"800KHZ"); else
if (SetChrBandwidth==2) STR2RAM(str,"920KHZ"); else STR2RAM(str,"1000KHZ");
GLCDTextBox(65,y,63,0,(menu==m),str);
if (menu==m) GLCDDrawCombo(y);
break;

case 10 : STR2RAM(str,"COMB.FILTER");
GLCDTextBox(0,y,64,0,(menu==m),str);
if (SetCombFilter==0) STR2RAM(str,"OFF"); else STR2RAM(str,"ON");
GLCDTextBox(65,y,63,0,(menu==m),str);
if (menu==m) GLCDDrawCombo(y);
break;

case 11 : STR2RAM(str,"----  EXIT MENU  ----");
GLCDTextBox(0,y,128,0,(menu==m),str);
break;
}
}
}


GLCDUpdateData();
Delay10KTCYx(32); // 5 mS
b=CheckButton();

if (b!=BTN_NONE) tmt=0; else tmt++;

if (tmt>750)
{
goto exit;
}


if (menu==0) if (checkincdec(BTN_L,BTN_R,&SetInput,1,b,1))
{
saa7113_SetSource(SetInput);
}

if (menu==1) if (checkincdec(BTN_L,BTN_R,&SetColor,31,b,0))
{
saa7113_SetColor(SetColor);
}

if (menu==2) if (checkincdec(BTN_L,BTN_R,&SetBrightness,31,b,0))
{
saa7113_SetBrightness(SetBrightness);
}

if (menu==3) if (checkincdec(BTN_L,BTN_R,&SetContrast,31,b,0))
{
saa7113_SetContrast(SetContrast);
}

if (menu==4) if (checkincdec(BTN_L,BTN_R,&SetHue,31,b,0))
{
saa7113_SetHue(SetHue);
}


if (menu==5) if (checkincdec(BTN_L,BTN_R,&SetScanlines,3,b,1))
{
// Scanlines ...
FpgaSetReg(0x00,SetScanlines);
}

if (menu==6) if (checkincdec(BTN_L,BTN_R,&SetEffect,3,b,1))
{
// Effects ...
FpgaSetReg(0x01,SetEffect);
}

if (menu==7) if (checkincdec(BTN_L,BTN_R,&SetPalBlend,3,b,1))
{
// Effects ...
FpgaSetReg(0x02,SetPalBlend);
}

if (menu==8) if (checkincdec(BTN_L,BTN_R,&SetFilter,2,b,1))
{
FpgaSetReg(0x02,SetPalBlend);
saa7113_SetInputAmp(SetFilter);
}

if (menu==9) if (checkincdec(BTN_L,BTN_R,&SetChrBandwidth,3,b,1))
{
saa7113_SetChrBandwidth(SetChrBandwidth);
}

if (menu==10) if (checkincdec(BTN_L,BTN_R,&SetCombFilter,1,b,1))
{
saa7113_SetCombFilter(SetCombFilter);
}

if ((menu==11) && ((b==BTN_L) || (b==BTN_R)) )
{
goto exit;
}

if (b==BTN_D)
{
menu++;
if (menu>11) topidx=0,menu=0;
if (menu>topidx+4) topidx=menu-4;
}

if (b==BTN_U)
{
menu--;
if (menu>11) topidx=7,menu=10;
if (menu<topidx) topidx=menu;
}


goto refresh;

exit:
Write_b_eep(0,SetInput); Busy_eep();
Write_b_eep(1,SetFilter); Busy_eep();
Write_b_eep(2,SetColor); Busy_eep();
Write_b_eep(3,SetBrightness); Busy_eep();
Write_b_eep(4,SetContrast); Busy_eep();
Write_b_eep(5,SetHue); Busy_eep();
Write_b_eep(7,SetChrBandwidth); Busy_eep();
Write_b_eep(8,SetCombFilter); Busy_eep();
Write_b_eep(9,SetScanlines); Busy_eep();
Write_b_eep(10,SetEffect); Busy_eep();
Write_b_eep(11,SetPalBlend); Busy_eep();

FpgaSetReg(0x04,0x00); // OSD OFF
return;
}


Şimdi C ile bu kadar kolay yazılmış olan bir kodu asm ile yazmak daha zor olacak. Hatta hiç uC core kullanmadan state machine yapısıyla komple FPGA e logic olarak yazmak da mümkün. Ama bu menüyü bu şekilde hazırlamak herhalde 1-2 hafta alır o şekilde...
Logged

Sayfa: 1 [2] 3 4 ... 92   Yukarı git
Yazdır
Gitmek istediğiniz yer: