- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 503

Thema: Gameboy Camera, Probleme bei dem Auslesen des Bildes

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2004
    Beiträge
    263
    So, hier ist dann mein Plan und mein Programm.

    Der Plan passt nicht ganz zu dem Programm. Das liegt daran, das ich meine Schaltung im Moment noch auf nem Steckbrett habe und noch nicht geätzt habe.

    Wer aber das Programm mit dem Schaltplan nutzen will, muß nur die Pins des A/D-Wandlers und die Pins der Cam anpassen. Sonst passt alles.

    Code:
    'Gameboy Kamera
    
    $regfile = "m8515.dat"                                      'ATmega8515-Deklarationen
    $crystal = 4000000                                          'Quarz: 4 MHz
    $baud = 9600
    
    Declare Sub Register_laden(addr As Byte , Wert As Byte)
    
    Dim Regwert(8) As Byte
    Dim Regaddr(8) As Byte
    
    Dim I As Byte
    
    Dim Bild(16384) As Xram Byte
    Dim Z As Word
    
    'Register festlegen:
    Regaddr(1) = 1
    Regaddr(2) = 2
    Regaddr(3) = 3
    Regaddr(4) = 4
    Regaddr(5) = 5
    Regaddr(6) = 6
    Regaddr(7) = 7
    Regaddr(8) = 0
    
    Regwert(1) = 0
    Regwert(2) = 0
    Regwert(3) = 15
    Regwert(4) = 0
    Regwert(5) = 0
    Regwert(6) = 0
    Regwert(7) = 7
    Regwert(8) = 0
    
    Main:
    
    'C1 und C0 laden:
    I = 0
    Do
       If Ucsra.rxc = 1 Then
          Regwert(2) = Udr
          I = 255
       End If
    Loop Until I <> 0
    I = 0
    Do
       If Ucsra.rxc = 1 Then
          Regwert(3) = Udr
          I = 255
       End If
    Loop Until I <> 0
    Wait 5
    
    
    Config Scl = Portb.2
    Config Sda = Portb.3
    
    'A/D-Wandler einstellen:
    I2cinit
    I2cstart
    I2cwbyte &B10010000
    I2cwbyte &B00000000
    I2cstop
    
    
    Config Portb.0 = Output                                     'XCK
    Config Portb.1 = Output                                     'Reset
    Config Portb.4 = Output                                     'Sin
    Config Portd.3 = Input                                      'read
    Config Portd.4 = Output                                     'Load
    Config Portd.5 = Output                                     'Start
    
    Config Portd.2 = Output
    Portd.2 = 1
    
    Xckpin Alias Portb.0
    Resetpin Alias Portb.1
    Sinpin Alias Portb.4
    Loadpin Alias Portd.4
    Startpin Alias Portd.5
    Readpin Alias Pind.3
    
    Resetpin = 1                                                'Reset High
    Xckpin = 1                                                  'XCK High
    Loadpin = 0                                                 'Load Low
    Startpin = 0                                                'Start Low
    
    'Reset:
    
    Waitus 5
       Xckpin = 0
    Waitus 2
       Resetpin = 0
    Waitus 3
       Xckpin = 1
    Waitus 2
       Resetpin = 1
    Waitus 3
       Xckpin = 0
    Waitus 2
    
    'Register Laden
    Call Register_laden(regaddr(1) , Regwert(1))
    Call Register_laden(regaddr(2) , Regwert(2))
    Call Register_laden(regaddr(3) , Regwert(3))
    Call Register_laden(regaddr(4) , Regwert(4))
    Call Register_laden(regaddr(5) , Regwert(5))
    Call Register_laden(regaddr(6) , Regwert(6))
    Call Register_laden(regaddr(7) , Regwert(7))
    Call Register_laden(regaddr(8) , Regwert(8))
    
    'Start:
    Startpin = 1
    Waitus 3
    Xckpin = 1
    Waitus 2
    Startpin = 0
    Waitus 3
    Xckpin = 0
    Waitus 4
    
    'Warten Bis Bild Fertig:
    While Readpin = 0
       Xckpin = 1
       Waitus 4
       Xckpin = 0
       Waitus 4
    Wend
    
    Z = 0
    I2cstart
    I2cwbyte &B10010001
    I2crbyte I , 8
       While Readpin = 1
          Xckpin = 1
          Waitus 1
          Incr Z
          I2crbyte I , 8
          Bild(z) = I
          Xckpin = 0
          Waitus 1
       Wend
       I2crbyte I , 9
       Incr Z
       Bild(z) = I
    I2cstop
    Portd.2 = 0
    
    For Z = 1 To 16384
       Printbin Bild(z);
    Next
    
    I = 0
    Portd.2 = 1
    Do
       If Ucsra.rxc = 1 Then
          I = Udr
       End If
    Loop Until I = 1
    
    Goto Main
    
    Do
    Loop
    
    End                                                         'end program
    
    Sub Register_laden(addr As Byte , Wert As Byte)
       'Registeraddr übertragen:
       For I = 2 To 0 Step -1
          Sinpin = Addr.i
          Waitus 3
          Xckpin = 1
          Waitus 5
          Xckpin = 0
          Waitus 2
       Next
       'Registerwert übertragen:
       For I = 7 To 0 Step -1
          Sinpin = Wert.i
          Waitus 3
          Xckpin = 1
          Waitus 2
          If I = 0 Then
             Loadpin = 1
          End If
          Waitus 3
          Xckpin = 0
          Waitus 2
          Loadpin = 0
       Next
       Sinpin = 0
    End Sub
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken board_630.png  

Berechtigungen

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

LiFePO4 Speicher Test