$regfile = "m8def.dat" 'Kenndaten für ATmega8 $crystal = 8000000 'Taktzahl des MC in Hz $baud = 19200 'Definiert die Übertragungsgeschwindigkeit Config Spi = Soft , Din = Pinc.1 , Dout = Pinc.3 , Ss = Portc.0 , Clock = Pinc.2 'Konfiguiere SPI mit Din = MISO und Dout = MOSI außerdem ist es automatisch Master SS = NCS 'Ausgänge definieren: Config Portd.2 = Output 'Pin D2 zu Ansteuerung der LED Config Portc.4 = Output 'Reset des Maus IC Config Portc.5 = Output 'NPD Eingang am Maus IC (Power Down) 'Definition von Variablen Dim Befehl_x As Byte Dim Befehl_y As Byte Dim Delta_x As Byte Dim Delta_y As Byte Dim X_wert As Byte Dim Y_wert As Byte Dim Aufloesung(2) As Byte Dim Motion As Byte Dim Text As String * 10 'PWM defininieren Config Pinb.1 = Output Config Pinb.2 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8 'Timer1 mit Pulsweitenmodulation mit einer Auflösung von 8 bit als 256 '----------------------------Programm----------------------------- 'Änderung der Variablen Bezeichnung Led Alias Portd.2 Maus_reset Alias Portc.4 Npd Alias Portc.5 'Startbeschaltung definieren: Led = 0 Maus_reset = 0 Npd = 1 'Maus IC beginnt zu arbeiten Waitms 100 Led = 1 'Beginn der Kommunikation mit dem Mikrocontroller nach Auslösen eines Interrups Aufloesung(1) = &H8A Aufloesung(2) = &B00010000 Spiinit 'Initialisierung des SPI Spcr = &B00011000 'Anpassen des SPI Spiout Aufloesung(1) , 2 'Ändern der Auflösung X_wert = &H00 'Ausgabe zu Null Y_wert = &H00 Do Delta_x = Spimove(&H03) 'Abfrage des Befehls Delta_y = Spimove(&H04) X_wert = X_wert + Delta_x Y_wert = Y_wert + Delta_y Compare1a = X_wert Compare1b = Y_wert 'Nach 255 Pins sind wir am Ende der Strecke Loop End