Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

Bascom AVR TVOUT

 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Sre Jan 28, 2015 7:18 pm    Naslov sporočila: Bascom AVR TVOUT Odgovori s citatom

Ja, za vse ki ne veste, Bascom podpira TV video output.
Namesto LCD-a lahko priklopite TV.
Uporaba je brezplačna če ni namenjena v komercijalne namene.
Več o tem najdete v Help-u pod TVOUT.
Priporočam da začnete s preizkušanjem primera bartest.bas.
Serijska komunikacija s terminalom meni ni delala dokler programa nisem predelal.
Video signal je RGB, jaz pa sem od tega naredil video signal, slika ni
barvana, so pa vidne sivine (ni mi se ljubilo vleči kabla do TV-a in sem uporabil 5"LCD video monitor).
LP
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
iskra
Profesionalec


Pridružen/-a: Tor Jan 2004 16:29
Prispevkov: 254
Kraj: Sežana

PrispevekObjavljeno: Čet Feb 19, 2015 7:27 am    Naslov sporočila: Odgovori s citatom

Lahko kaj več napišeš o tem..
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Pon Feb 23, 2015 6:09 pm    Naslov sporočila: Odgovori s citatom

Iskra,
trenutno nimam časa, bom pa uredil moj program in pripel nekaj slik kako to zgleda.
Že pred leti sem uporabil en AVR video terminal.
Na hiški ki je deleč imam video nadzor in vpogled v temperature in vlago prek telneta.
Da bi videl stanje na objektu sem podatke ki jih pošiljam prek telneta (AVR) speljal na en AVR video terminal, z njim naredil video signal katerega sem priklopil namesto ene kamere. Tako zdaj podatke o temperaturi vidim prek video nadzora kot sliko.
To je en primer uporabe video terminala.
Drugače je procesor tolio zaposlen z ustvarjanjem slike da za drugo delo ostane bolj malo časa. uporabno je predvsem kot vmesnik sistem-> TV (video monitor).
LP
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
iskra
Profesionalec


Pridružen/-a: Tor Jan 2004 16:29
Prispevkov: 254
Kraj: Sežana

PrispevekObjavljeno: Tor Feb 24, 2015 8:28 am    Naslov sporočila: Odgovori s citatom

Hvala.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Tor Mar 03, 2015 1:48 pm    Naslov sporočila: Odgovori s citatom

Prilagam kode s katerimi sem testiral TVOUT:
Koda:
$regfile = "M328def.dat"
$crystal = 20000000
$hwstack=200
$swstack=48
$framesize=38
'$crystal = 20000000
$BAUD = 115200

' Reserve screen variable area at start of RAM
' Assembler interrupt code has two byte variables IN BETWEEN two word variables
Dim ScreenAddr1 as word at $100
Dim RAMVar1 as byte at $102
Dim RAMVar2 as byte at $103
Dim ScreenAddr2 as word at $104

' Reserve Screen RAM - can reserve as much or as little as required
Dim ScreenRAM(600) as byte at $106
Dim Addr As Word
Dim CharIn as Byte

Const NewScreen = $7E

'Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
'Config is not needed unless settings differ from default

On Oc2a Tvinterrupt Nosave
Goto Main
!.org $100
$inc Tvinterrupt , Nosize , "tvinc.bin"
Return


Main:
  ' Set up clock division - only need to do this if DIV8 fuse not set, as default fuse setting is div. by 8
  Config Clockdiv = 1
  '        CLKPR=$80
  '        CLKPR=0
  ' Setup timer 2
  TCCR2B=$02
  OCR2A=158
  OCR2B=160
  TIMSK2=&b00000110
  ' Now set up sleep mode [SMCR = Sleep Mode Control Register] - must be enabled or TV code cannot work accurately
  SMCR=1
  ' Set PORTB to all outputs for video signal
  DDRB=$FF
  ' Enable & config SPI
  SPCR=$54
  SPSR=1
  ' Init RAM variables for interrupt code
  RAMVar1=0
  RAMVar2=0
  ScreenAddr1=$106
  ScreenAddr2=$106

  ENABLE OC2A
  '        ENABLE OC2B
  ENABLE INTERRUPTS
  ' Now continue with user code




  Addr=1       ' Set Addr to address of first screen location
  ScreenRAM(Addr)=" "
       Incr Addr

        ScreenRAM(Addr)=13
      '  Incr Addr
  Do

     CharIn=INKEY()

    If CharIn>0 then
    'print charIn
        ScreenRAM(Addr)=CharIn
        Incr Addr
        ScreenRAM(Addr)=13     ' Make sure there is always an end of screen character
    End If
    If CharIn=NewScreen then
        Addr=1
        ScreenRAM(Addr)=13
    End If
    If Addr>599 then Addr=1       ' Make sure cannot write past end of screen Ram

     '  ScreenRAM(Addr)=13

     '  END IF

  Loop

  ' Decimal {012} = $0C = END OF LINE MARKER
  ' Decimal {013} = $0D = END OF SCREEN MARKER

  ' Decimal {017} = $11 = Green on black
  ' Decimal {019} = $13 = Cyan on blue
  ' Decimal {020} = $14 = Yellow on red
  ' Decimal {022} = $16 = White on magenta

End


In bar test:

Koda:
$regfile = "M328def.dat"
$crystal = 20000000
$hwstack=40
$swstack=16
$framesize=32

'$crystal = 20000000
$BAUD = 9600

' Reserve screen variable area at start of RAM

' Assembler interrupt code has two byte variables IN BETWEEN two word variables
Dim ScreenAddr1 as word at $100
Dim RAMVar1 as byte at $102
Dim RAMVar2 as byte at $103
Dim ScreenAddr2 as word at $104

Dim ScreenRAM(600) as byte AT $106

Dim Addr As Word
Dim NumChar as byte
Dim MaxBar as byte
Dim Bar as byte
Dim I as byte
Dim Colour as byte

On Oc2a Tvinterrupt Nosave
Goto Main
!.org $100
$inc Tvinterrupt , Nosize , "tvinc.bin"
Return


Main:
' Set up clock division - only need to do this if DIV8 fuse not set, as default fuse setting is div. by 8
Config Clockdiv = 1
'        CLKPR=$80
'        CLKPR=0
' Setup timer 2
        TCCR2B=$02
        OCR2A=158
        OCR2B=160
        TIMSK2=&b00000110
' Now set up sleep mode [SMCR = Sleep Mode Control Register] - must be enabled or TV code cannot work accurately
        SMCR=1
' Set PORTB to all outputs for video signal
        DDRB=$FF
' Enable & config SPI
        SPCR=$54
        SPSR=1
' Init RAM variables for interrupt code
        RAMVar1=0
        RAMVar2=0
        ScreenAddr1=$106
        ScreenAddr2=$106

        ENABLE OC2A
'        ENABLE OC2B
        ENABLE INTERRUPTS
' Now continue with user code


Do

        Addr=1        ' Set Addr to address of first screen location
        NumChar=$30     ' ASCII value for 0

' Display three sets of alternately coloured bars
        GoSub TwoBars
        GoSub TwoBars
        GoSub TwoBars

        Incr Addr
        ScreenRAM(Addr)=13

' Decimal {012} = $0C = END OF LINE MARKER
' Decimal {013} = $0D = END OF SCREEN MARKER

' Decimal {017} = $11 = Green on black
' Decimal {019} = $13 = Cyan on blue
' Decimal {020} = $14 = Yellow on red
' Decimal {022} = $16 = White on magenta

        Wait 5
Loop

TwoBars:
        Incr NumChar
        Colour=19
        GoSub DisplayBar
        Incr NumChar
        Colour=20
        GoSub DisplayBar
        Return

DisplayBar:
        ScreenRAM(Addr)="B"
        Incr Addr
        ScreenRAM(Addr)="a"
        Incr Addr
        ScreenRAM(Addr)="r"
        Incr Addr
        ScreenRAM(Addr)=" "
        Incr Addr
        ScreenRAM(Addr)=NumChar
        Incr Addr
        ScreenRAM(Addr)=":"
        Incr Addr
        ScreenRAM(Addr)=12
        Incr Addr
' Display row of bar characters plus an end of line char
MaxBar=45
Bar=RND(MaxBar)
Incr Bar
' Make sure Bar is not zero, between 1 and 46

        ScreenRAM(Addr)=Colour
        Incr Addr
For I=1 to Bar                  ' Write a bar character for each unit in "Bar"
        ScreenRAM(Addr)=$3C
        Incr Addr
Next I

        ScreenRAM(Addr)=" "     ' Write a space
        Incr Addr
        Incr Bar

        ScreenRAM(Addr)=17      ' Write a green on black command to end bar
        Incr Addr
        Incr Bar

For I=Bar to 50                 ' Write number of spaces to make bars all the same length (makes screen steady)
        ScreenRAM(Addr)=" "
        Incr Addr
Next I

        ScreenRAM(Addr)=12      ' Write end of line character
        Incr Addr

Return

End


LP
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Jure
Urednik


Pridružen/-a: Pon Jan 2004 12:51
Prispevkov: 2132
Kraj: Ljubljana

PrispevekObjavljeno: Tor Mar 03, 2015 1:51 pm    Naslov sporočila: Odgovori s citatom

Lepo Vlado, zdaj pa hitro stare ČB monitorje na plano, da bodo še odlužili kakšno urico prikazovanja Very Happy

Lp
Jure
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Tor Mar 03, 2015 1:53 pm    Naslov sporočila: Odgovori s citatom

Jure, slika je barvna (se vidijo odtenki), vendar je tedaj priklop prek SCART kabla. Jaz sem z upori naredil video, ker ta monitor nima RGB vhoda, zato so vidne samo sivine.
LP
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
iskra
Profesionalec


Pridružen/-a: Tor Jan 2004 16:29
Prispevkov: 254
Kraj: Sežana

PrispevekObjavljeno: Tor Mar 03, 2015 1:54 pm    Naslov sporočila: Odgovori s citatom

Hvala.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
slawko
Začetnik


Pridružen/-a: Čet Jan 2009 10:48
Prispevkov: 16

PrispevekObjavljeno: Pet Mar 13, 2015 2:44 pm    Naslov sporočila: Odgovori s citatom

Vlado, zelo zanimivo kaj pa hw?
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Sob Mar 14, 2015 11:19 am    Naslov sporočila: Odgovori s citatom

Ves Hw je opisan v Helpu, ali na strani
https://sites.google.com/site/eximiaprojects/bascom-tv/bascom-tv-technical-info
Jaz sem dodal še štiri upore na RGB in sync ki so na drugi strani združeni in prek 75 OHM upora vezani na maso.
Stičišče uporov je izhod kompozite video.
Na podanem linku je treba poiskati tudi inc fajl ki je potreben za delovanje programa.

Moram pa povedati da z delovanjem nisem prav zadovoljen, se preveč zatika (mogoče je kriv HW ki je bil na preizkusni ploščici).Tudi ukazi (nova vrstica, cls . . .) niso prav posrečeno izbrani.
Osebno sem z video terminalom bolj zadovoljen z enim video terminalom ki sem ga našel na netu.
Še nisem preizkusil TELYMATE ki naj bi tudi bil OK.
LP
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group