Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

Senin, 04 Juni 2012

BERMAIN DENGAN TV PART#2

Setelah hanya bermain dengan HSYNC ( horizontal scanline) saja pada posting sebelumnya, maka pertanyaan akan muncul gimana jika pengen menampilkan gambar ditengah layar TV.

standar TV analog PAL memiliki teknik scanning line sebanyak 625 line, dengan teknik penggabungan penembakan elektron garis ganjil dulu dilanjutkan dengan line genap. seperti gambar dibawah ini :



untuk memberikan pembeda antara awal scan genap dan ganjil , dilakukan dengan memberikan pulsa yg berbentuk 0 - 0,3v dan dengan durasi 'short' selama 2us dan 'long' yang artinya 32 us. Agak ribet memang , tp lama-lama juga bakalan ngerti. kalo dilihat secara osciloscop seperti ini :


*)keterangan : us = micro second

Jadi untuk VSYNC ganjil, aturannya seperti ini :

- Dimulai dari baris ke 623, pulsa sebanyak 6x (0v selama 2us , 0,3v selama 32us ) selajutnya dinamakan LONG SYNC
- Setelah itu penanda start vsync 5x (0v selama 32us , 2us untuk level 0,3v) selanjutnya dinamakan SHORT SYNC
- Diakhiri dengan long sync sebanyak 5x
- Tidak semua baris tampil di tabung TV, umumnya tabung kelihatan mulai baris ke 50


Sedangkan untuk VSYNC GENAP, sebagai berikut:

- Dimulai dari baris ke 311, dengan LONG SYNC 5x
- Short Sync 5x
- Diakhiri dengan LONG SYNC 4x
- Beda antara baris yg berdempetan (Ganjil & Genap) adalah 312

nah sekarang kita ingin membuat garis vertikal ....seperti gambar :




programmingnya seperti berikut :



#define F_CPU 16000000UL

#include <avr/io.h>

#include <util/delay.h>

#define SYNC  PORTB=0

#define ABU   PORTB=0b10

#define ITEM  PORTB=0b01

#define PUTIH PORTB=0b11


int line;
void hsync(void)
  //sync  
   SYNC;
   _delay_us(4);
   ITEM
   _delay_us(8); 

   if(line == 50 || line == 100 || line == 150|| line == 200 || line == 250) ITEM
   else  ABU;  
   _delay_us(50);
line++;
}

void vsync(uint8_t ganjilgenap)
{
uint8_t a,b;
if(ganjilgenap == 0) b=6;
else b=5;
for(a=0; a<b ; a++) //6x atau 5x long sync
{
SYNC;
_delay_us(2);

PORTB=1;
_delay_us(30);
}
for(a=0; a<5 ; a++) //5x short sync
{
SYNC;
_delay_us(30);

PORTB=1;
_delay_us(2);
}

if(ganjilgenap == 0) b=5;
else b=4;
for(a=0; a<b ; a++) //5x atau 4x long sync
{

SYNC;
_delay_us(2);
PORTB=1;

_delay_us(30);
}

if(ganjilgenap == 0) line=5;
else line=317;
}
int main(void)
{  
  line=622;
  //Inisialisasi port input

   DDRB =0b11;  
   while(1)
   {   
   if(line == 622) vsync(0);  //genap
   else if(line == 310) vsync(1); //ganjil

   else hsync();

   }
}

selanjutnya dengan penggabungan antara VSYNC dan HSYNC kita bisa menggambar diatas TV, tentunya dengan keterbatasan timing dari AVR, susah juga kadang menemukan timing yg pas. dengan menggunakan delay.h tidak bisa dijamin delay yg bener sebab tiap perintah /syntax dari GCC memerlukan waktu eksekusi yg memakan waktu juga . begitu pula dengan menggunakan counter interrupt, timing nya terbatas untuk interupt yg pas digunakan, sebab jika CTC 1us maka hampir semua program didominasi oleh interupt timer.

kalo yg kayak gini mau ? 



kalo mau...contact aja aku ... atau mau lanjut ke part ke 3
Share:

0 komentar:

Posting Komentar

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (8) arduino (26) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (25) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (58) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (7) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (7) radio (26) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) transistor (2) troubleshoot (3) tulisan (93) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika