-         

Ergebnis 1 bis 3 von 3

Thema: ping-pong-anfang mit fbas-signal und atmega32 8mhz

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    05.01.2008
    Beiträge
    22

    ping-pong-anfang mit fbas-signal und atmega32 8mhz

    Anzeige

    kleines ping-pong-beispiel mit Bascom und dem fbas-signal.


    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 64
    $crystal = 8000000
    $baud = 19200
    
    Declare Sub Tv_asm()
    
    Dim Z As Byte
    Dim Hodunkel_l As Byte
    Dim Hodunkel_r As Byte
    Dim Hodunkel_pi As Byte
    Dim Hopixel As Byte
    Dim Vepixel As Byte
    
    Dim Vedunkel_o As Byte
    Dim Vedunkel_u As Byte
    
    Dim Text As String * 10
    
    Config Pind.6 = Output
    Config Pind.7 = Output
    
    Sync Alias Portd                        '-[ 1,2K ]- Sync Ausgang
    Video Alias Portd                       '-[ 560  ]- Video Ausgang
    Const Syn = 6
    Const Vid = 7
    
    Enable Interrupts
    
    Waitms 200
    
    Hodunkel_l = 100
    Hopixel = 1
    Hodunkel_r = 138 - 101
    Hodunkel_pi = 138 - Hopixel
    Vepixel = 7
    Vedunkel_o = 45
    Vedunkel_u = 255
    
    Do
    
    For Z = 1 To 136
      Vedunkel_o = Vedunkel_o + 1
      Vedunkel_u = Vedunkel_u - 1
      Hodunkel_l = Z
      Hodunkel_r = Hodunkel_pi - Z
      Call Tv_asm()
    Next
    For Z = 1 To 136
      Vedunkel_o = Vedunkel_o - 1
      Vedunkel_u = Vedunkel_u + 1
      Hodunkel_l = Hodunkel_pi - Z
      Hodunkel_r = Z
      Call Tv_asm()
    Next
    
    
    Loop
    
    End
    
    Sub Tv_asm()
    $asm
    
    '**************** Hauptschleife **************************************
    '  bei 8 MHz ( 1 Takt = 0,125µs )
    '  die Zeiten im Hauptprogramm zählen immer von "cbi sync,syn" (Sync auf Low)
    '  bis "sbi sync,syn" (Sync auf High) oder eben von High nach Low
    '*********************************************************************
    
    '            __         ___         ___
    '  V-Sync      |_______|   |_______|   |  ---> die ersten 2,5 Zeilen
    '                27,5   4,5  27,5   4,5
    
    Main:
    
       ldi   r16,5
    Syn_0:
    
       cbi   sync,syn
       cbi   video,vid
    
       ldi   r23,$49                        '27,5 µs
    Syn_1:
       dec   r23
       brne   syn_1
    
       sbi   sync,syn
    
       ldi   r23,12                         '4,5 µs
    Syn_2:
       dec   r23
       brne   syn_2
       nop
    
       dec   r16
       brne   syn_0                         'Schleife 5 x 32µs = 160µs
    
    
    '                  __    ________    _________
    '  Nachtrabanten     |__|        |__|         |   ---> wieder 2,5 Zeilen
    '                    2,25 29,75  2,25  29,75
    
       ldi   r16,5
    Sync2:
    
       cbi   sync,syn                       'Nachtrabanten
       cbi   video,vid
    
       ldi   r23,6                          '2,25 µs
    Syn_3:
       dec   r23
       brne   syn_3
    
       sbi   sync,syn
    
       ldi   r23,$4f                        '29,75 µs
    Syn_4:
       dec   r23
       brne   syn_4
    
       dec   r16
       brne   sync2                         'Schleife 5 x 32µs = 160µs
                                            'zusammen 320µs = 5 Zeilen
    
    '************************ Zeilen ************************************
    '
    '                         _______________________
    '            __      ____|                       |___   ---> 307 Zeilen mit Bildinhalt
    '  H-Sync      |____|
    '               4,5    6     52µs Bildinhalt      1,5 µs
    '
    '************************ Zeilen dunkel ************************************
    
       lds   r16,{vedunkel_o}
    Hsyn_0:
    
       cbi   sync,syn
       cbi   video,vid
    
       ldi   r23,12                         '4,5 µs
    Hsyn_1:
       dec   r23
       brne   hsyn_1
    
       sbi   sync,syn
       cbi   video,vid
    
       ldi   r23,$9e                        '59,5 µs ( 6 + 52 + 1,5µs )
    Hsyn_2:                                 'da die Pegel für Bildinhalt schwarz sind
       dec   r23                            'wurde es hier zusammnegefasst
       brne   hsyn_2
       nop
       nop
    
       dec   r16
       brne   hsyn_0
    
    Weiter:
    '************************ Zeilen-Linien *********************************
    
       lds   r16,{Vepixel}
    Hsyn_3:
       cbi   sync,syn
       cbi   video,vid
    
       ldi   r23,12                         '4,5 µs
    Hsyn_4:
       dec   r23
       brne   hsyn_4
    
       sbi   sync,syn
       cbi   video,vid
    
       ldi  R23, 12                         '6,0 µs
    Hsyn_44:
       dec  R23
       brne Hsyn_44
       nop
       nop
    
       lds   r23,{hodunkel_l}
    Hsyn_555:
       dec   r23
       brne   hsyn_555
    
       sbi   sync,syn
       sbi   video,vid
    
       lds   r23,{hopixel}                  'Bild  aus Variable
    Hsyn_5:
       dec   r23
       brne   hsyn_5
    
       sbi   sync,syn
       cbi   video,vid
    
       lds   r23,{hodunkel_r}
    Hsyn_55:
       dec   r23
       brne   hsyn_55
    
       ldi   r23,3                          '1,5 µs Nachsync
    Hsyn_6:
       dec   r23
       brne   hsyn_6
       nop
       nop
       nop
       nop
       nop
       dec   r16
       brne   hsyn_3
    
    '************************ Zeilen dunkel *******************************
    
       lds   r16,{vedunkel_u}
    Hsyn_8:
    
       cbi   sync,syn
    
       ldi   r23,12                         '4,5 µs
    Hsyn_9:
       dec   r23
       brne   hsyn_9
    
       sbi   sync,syn
    
       ldi   r23,$9e                        '59,5 µs ( 6 + 52 + 1,5µs )
    Hsyn_10:                                'da die Pegel für Bildinhalt schwarz
       dec   r23                            'bleiben wurde es zusammnegefasst
       brne   hsyn_10
    
       dec   r16
       breq   ende
    
       brne   hsyn_8
    Ende:
       'jmp   main
    $end Asm
    End Sub

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.11.2003
    Beiträge
    813
    Koenntest du vielleicht noch ein klein wenig mehr schreiben wo was angeschlossen wird.
    Paddels und fbas Beschaltung

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Ein Purebasic Fan, jo das freut mich, aber wieso gesperrt?
    Wer soviel von Vor- und Nachtrabanten versteht, ist doch nicht frech
    Was hast du für ein unseriöses Bildchen mit Bascom erstellt

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •