Config Timer1 for Video VGA application

Sezione dedicata al sistema di sviluppo BASCOM-AVR per i micro AVR
At90s, Attiny, Atmega e Xmega

Config Timer1 for Video VGA application

Postby cyclone » 15 Aug 2012, 21:09

ciao,
per una applicazione VGA con il bascom-avr avrei bisogno di generare due segnali di sincronismo con un ATmega16 o con un arduino2560 che lavora a 16Mhz.
-----------------------------------------------------------------------------------------------------------------------
for a VGA controller application with Bascom-AVR, I need to generate two synchronized signals with a ATmega16 clock 16Mhz.

1) VGA_HS -> pwm with a period of ~31.77 uS
2) VGA_VS -> pwm with a period of ~16.68 mS

using the timer1 properly configured as PWM.

outputs that I use are OC1A and another pin type OC1B

How can I configure timer1, using registers to get these results or using Config Timer1 ?

thank you very much fo the help.

NB. questo topic l'ho postato anche sul forum bascom di MCSELEC (e per questo l'ho lasciato in inglese)
User avatar
cyclone
 
Posts: 38
Joined: 27 Jan 2012, 11:49

Re: Config Timer1 for Video VGA application

Postby deluca » 16 Aug 2012, 09:35

salve ragazzi come state? trascorso bene il ferra?
vedo che anzi c'è stato qualche piccolo movimento nel forum....

ciao cyclone,
per quanto riguarda la generazione dei segnali di sincronismo un modo c'è utilizzando il timer 1 come pwm per quanto concerne il sinc orizzontale e gestendo
l'overflow dello stesso per generare un interrupt per la generazione del sinc verticale.... queste sono le cose essenziali per realizzare un generatore di sincronismi VGA base....
non so cosa vuoi realizzare ... ma non ti nascondo che sono abbastanza curioso, anche perchè le applicazioni video sono state sempre di mio interesse.
Code: Select all
'*******************************************************************************
'
'  VGA signal generator
'  by G. De Luca
'
'*******************************************************************************
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 128
$swstack = 128
$framesize = 128

Tccr1a = &HC2           'inv.,fast PWM            1100_xx10B   
Tccr1b = &H19             'non divide               xx-1_1001B       
Icr1 = 508
Ocr1a = 61                        '(1/16MHz)×61 = 3.8125us   
Pwm1a = 55                '(508- 61)   (1/16MHz) × (1017+1) = 31.75us

Enable Interrupts
Enable Timer1
On Timer1 Timer_1

Ddrd.5 = 1
Ddrd.7 = 1

Dim Line_count As Word
Dim Color As Byte
'-------------------------------------------------------------------------------
Do
   nop
Loop
'-------------------------------------------------------------------------------
End
'-------------------------------------------------------------------------------
Timer_1:

     If Line_count =< 1 Then Portd.7 = 0
     If Line_count > 1 Then Portd.7 = 1
     If Line_count < 508 Then Incr Line_count Else Line_count = 0

Return



sul pin portd.5 si trova il segnale di sync orizzontale
sul pin portd.7 quello verticale 1 Then Portd
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Config Timer1 for Video VGA application

Postby legacy » 25 Oct 2012, 20:27

prima o poi mi sa che faro' qualcosa anche io
cosa ? ho un tubo crt color ambra con sincronismi CGA
si, e' molto molto vecchio, lo montarono sul primo "trasportabile"
il nonno dei portatili, nel senso che ... era il primo PC a batteria ma pesava 10Kg =P

e per forza ! per schermo non aveva un LCD ma un tubo in vetro, un CRT !
la VGA e' un filo diverso da CGA, per frequenze, per polarita', e per informazione
pero' quanto avete fatto dovrebbe essere fattibile gestire il tutto modi "terminale VT100"

uart -> text frame (con tanto di scroll) -> CGA driver =P

la motivazione e', come si capisce, puramente ludica
il tubo poi e' bellissimo, piccolo, leggero, e l'ho messo in un box di plexyglass
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Config Timer1 for Video VGA application

Postby deluca » 27 Oct 2012, 14:56

per quel tubo potresti tranquillamente costruire un bel controller video con fpga così da poter essere pilotato
da un convertitore VGA->CGA.
molto bello e ottimamente vintage per giocarci con i vecchi video games 70/80' emulandoli con MAME.
magari installando il tutto in un cabinet stile PHOENIX o PACMAN.
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Config Timer1 for Video VGA application

Postby legacy » 27 Oct 2012, 15:12

no, per quel genere di cose farei proprio un cabinato mame

pero' parliamo di schede PC (con su linux o windows) con schede video arcade
in pratica un hack, compri una scheda pci o agp commerciale e riflashi la flash

io vorrei invece farci un VT term perche' quel tubo ambra
ho notato che stanca molto meno gli occhi, ha 1 bit di colore, o ambra o nero

ottima la tua idea, cosi' invece di complicarmi la vita su una MPU
e impazzire sui sincronismi per il video delego queste cose alle brava fpga
che questo punto tratto come periferica per la schedina a micro

per l'occasione potrei utilizzare la spartan3e mini board che avevo realizzato
e che mi e' rimasta sul gobbo, tra l'altro ha su 1Mbyte di dual port static ram
sembra fatta apposta per farci un framebuffer

dai, non mi tentare :lol:
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30


Return to BASCOM-AVR

Who is online

Users browsing this forum: No registered users and 13 guests

cron