Fehler gefunden: Ich habe meinen MAX232 zerstört...
Was würdet ihr eigentlich zu diesem Code Sagen?
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 Regaddr(8) As Byte
Dim Regwert(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) = 128
Regwert(2) = 14
Regwert(3) = 6
Regwert(4) = 0
Regwert(5) = 1
Regwert(6) = 0
Regwert(7) = 1
Regwert(8) = 7
Config Scl = Portb.2
Config Sda = Portb.3
Config I2cdelay = 10
'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
Xckpin Alias Portb.0
Resetpin Alias Portb.1
Sinpin Alias Portb.4
Loadpin Alias Portd.4
Startpin Alias Portd.5
Voutpin Alias Portd.2
Readpin Alias Portd.3
Resetpin = 1 'Reset High
Xckpin = 1 'XCK High
Loadpin = 0 'Load Low
Startpin = 0 'Start Low
'Reset:
Waitus 5
Xckpin = 0 'XCK Low
Waitus 2
Resetpin = 0 'Reset Low
Waitus 2
Xckpin = 1 'XCK High
Waitus 2
Resetpin = 1 'Reset High
Waitus 2
Xckpin = 0 'XCK Low
'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:
Waitus 2
Startpin = 1
Waitus 2
Xckpin = 1
Waitus 2
Startpin = 0
Do
'Warten bis Bild fertig:
Do
Waitus 3
Xckpin = 0
Waitus 5
Xckpin = 1
Waitus 2
Loop Until Readpin = 1
'Bild lesen;
I2cstart
I2cwbyte &B10010001
For Z = 1 To 16383
I2crbyte Bild(z) , 8
Xckpin = 0
Waitus 4
Xckpin = 1
Next
I2crbyte = Bild(16384) , 9
I2cstop
Xckpin = 0
Waitus 1
For Z = 1 To 16384
Printbin Bild(z)
Next
Loop
End 'end program
Sub Register_laden(addr As Byte , Wert As Byte)
'Registeraddr übertragen:
For I = 3 To 1 Step -1
Waitus 4
Sinpin = Addr.i
Xckpin = 1
Waitus 4
Xckpin = 0
Next
'Registerwert übertragen:
For I = 8 To 2 Step -1
Waitus 4
Sinpin = Wert.i
Xckpin = 1
Waitus 4
Xckpin = 0
Next
Waitus 4
Sinpin = Wert.1
Xckpin = 0
Waitus 2
Loadpin = 1
Waitus 2
Xckpin = 0
End Sub
Habe im Moment noch keine Möglichkeit das zu testen.
Lesezeichen