Ja, das sollte gehen, ich hab den Link zu der informativsten Seite leider grad nicht parat... Es gibt aber zu den meisten Chips auch Datenblätter.
Hallo,
ich weiss ... das Thema optische Maus ist bereits bis zum Abwinken durch. Aber zu einem ganz bestimmten Aspekt konnte ich bisher Nichts finden:
Reichen denn die Resourcen eines ATMega8 mit Bascom aus, um einem Maussensor das Bild der internen Kamera zu entlocken (und dann per UART zu versenden)?
Ich bin neu auf dem Gebiet und kann bisher nur mit Bascom, nix C, nix ASM. Ich brauche eigentlich nur 2 Subroutinen um Bytes per PS/2 zu senden und zu empfangen, den Rest bekomme ich selber hin.
Die vorhandenen "fertigen" PS/2-bezogenen Befehle (KBD, Mouse) sind ja auf ganz bestimmte Zwecke festgelegt und gestatten keine "freie" binäre Kommunikation. Um an das interne Bild zu kommen ist doch Einiges an Registerschieberei nötig.
Mein Ziel ist eine Art "optischer Messkopf", der einfach auf Anforderung vom Host (PC oder Mac) mit einem Datenstrom antwortet: zuerst das Bild der Kamera (für einen Autofocus) und dann die Werte für X- und Y-Verschiebung.
Frank
Ja, das sollte gehen, ich hab den Link zu der informativsten Seite leider grad nicht parat... Es gibt aber zu den meisten Chips auch Datenblätter.
Klar kann der ATMega8 das.
Ich hab den jetzt aber nicht gekürzt. Aber ich denke, da sollte jeder in der Lage sein, die nötigen Subs herraus zu lesen.Code:$regfile = "m8def.dat" $crystal = 16000000 $baud = 19200 Ddr_sck Alias Ddrc.4 Ddr_sdio Alias Ddrc.5 Port_sck Alias Portc.4 Port_sdio Alias Portc.5 Pin_sdio Alias Pinc.5 Declare Sub Adns2610_init() Declare Sub Adns2610_write_byte(byval Write_byte As Byte) Declare Function Adns2610_read_byte() As Byte Declare Sub Adns2610_write_operation(byval Address_byte As Byte , Byval Data_byte As Byte) Declare Function Adns2610_read_operation(byval Address_byte As Byte) As Byte On Urxc Onrxd Enable Urxc Enable Interrupts Dim Empfangsbyte As Byte Dim Zeichen As String * 1 Dim Print_byte As Byte Declare Sub Picture() Declare Sub Properties() Declare Sub Xy() Call Adns2610_init() Dim Read_data As Byte Read_data = 0 Do Loop End Onrxd: Empfangsbyte = Udr Zeichen = Chr(empfangsbyte) If Zeichen = "#" Then Call Picture() End If If Zeichen = "!" Then Call Properties() End If If Zeichen = "$" Then Call Xy() End If Return Sub Picture() Call Adns2610_write_operation(&H00 , &H01) Waitus 500 Call Adns2610_write_operation(&H08 , &H00) Waitus 100 Local I As Integer For I = 1 To 324 Print_byte = Adns2610_read_operation(&H08) Print Print_byte; Waitms 10 Next I End Sub Sub Properties() Print_byte = Adns2610_read_operation(&H04) Print Print_byte; Waitms 10 Print_byte = Adns2610_read_operation(&H09) Print Print_byte; Waitms 10 Print_byte = Adns2610_read_operation(&H0a) Print Print_byte; End Sub Sub Xy() Print_byte = Adns2610_read_operation(&H03) Print Print_byte; Waitms 10 Print_byte = Adns2610_read_operation(&H02) Print Print_byte; End Sub Sub Adns2610_init() Ddr_sck = 1 Ddr_sdio = 1 Port_sck = 1 Port_sdio = 1 Call Adns2610_write_operation(&H00 , &H80) Waitus 250 End Sub Sub Adns2610_write_byte(byval Write_byte As Byte) Local I As Byte Ddr_sdio = 1 For I = 7 To 0 Step -1 Port_sck = 0 Port_sdio = Write_byte.i Waitus 1 Port_sck = 1 Waitus 1 Next I Ddr_sdio = 0 Port_sdio = 0 End Sub Function Adns2610_read_byte() As Byte Local I As Byte Local Data_byte As Byte Waitus 250 For I = 7 To 0 Step -1 Port_sck = 0 Waitus 1 Port_sck = 1 Data_byte.i = Pin_sdio Next I Adns2610_read_byte = Data_byte End Function Sub Adns2610_write_operation(byval Address_byte As Byte , Byval Data_byte As Byte) Address_byte = Address_byte Or &B10000000 Call Adns2610_write_byte(address_byte) Call Adns2610_write_byte(data_byte) End Sub Function Adns2610_read_operation(byval Address_byte As Byte) As Byte Call Adns2610_write_byte(address_byte) Adns2610_read_operation = Adns2610_read_byte() End Function
Viel Erfolg damit.
Wenn noch Fragen bzgl. Maussensor sind, einfach fragen.
Gruß
Hacker
Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!
welche maus kann man da nehmen um dieses projekt zum laufen zu bringen?
Den Maussensor ADNS2610 von Agilent.
Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!
Hi,
ich hab zufällig eine Maus gefunden mit einem 2610 drinn
Ich hab mal Dein Programm so abgeändert das es beim Einschalten die Daten sendet. Hab halt viele Zahlen auf dem Bildschirm (der Wert wird kleiner je mehr man den Sensor abdeckt).
Ich hab mal hier irgendwo ein Programm gesehen mit dem man die Pixeldaten des Sensors abbilden kann! Weist Du wo ich das herbekomme? Wird damit gern mal etwas spielen!
Grüße
Alex
Ich hab leider schon mein max. Uplodelimit erreicht. Ich kann es dir per Mail schicken, wenn du magst. Dann schick mir einfach eine PM.
Gruß Hacker
Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!
frag doch mal den Admin nach mehr Upload... So wervolle Sachen sollten uns nicht entgehen, nur weil du eine Upload-Limit wie ein Noob hast. Sowas hast du nicht verdient!
Nein, das wäre nicht gerecht. Jeder soll gleich viel Upload bekommen.
Viel mehr würde es mir was bringen, wo ich meinen ganzen geposteten Anhänge oder so wieder löschen kann.
Kann man im Wiki Dateianhänge für die einzelnen Artikel machen? Da wäre es sinnvoll, das upload frei zugeben...(wenn es nicht schon ist).
Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!
gibt es diese Code auch in C?
Lesezeichen