Versuch vielleicht mal, testen kann ich es aber nicht
Anmerkung:Code:$regfile "ATtiny2313.dat" $crystal = 8000000 $hwstack = 32 $swstack = 32 $framesize = 24 '****************************************************************************** Config Portd.6 = Output Config Portb.3 = Output Config Portb.4 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 '****************************************************************************** Config Pind.2 = Input ' (Int0) Config Pind.3 = Input ' (Int1) Portd.2 = 1 ' Pullup aktivieren Portd.3 = 1 ' Pullup aktivieren Dim Schleife As Word Dim Schrittweite As Word Dim Zwischenwert As Word Dim Richtung As Byte Dim Tasten As Byte 'Tasten Dim Freigabe As Byte '( Nur wenn freigegeben, werden gedrückte Tasten akzeptiert Für Einen Neuen Tastendruck Muß Er Erstmal Auslassen ') Schrittweite = 1 Richtung = 1 Schleife = 100 '****************************************************************************** Do Tasten = Pind And &H0C ' nur die Tasten-Bits '( mögliche Werte: &H0c Garnix Gedrückt &H08 Taste Schritt+ &H04 Taste Schritt - &H00 Beide Tasten - > Ungültig , Ignoriert ') If Freigabe = 0 Then If Tasten = &H0C Then Freigabe = 1 ' nix gedrückt, nächte gilt wieder Else If Tasten = &H08 Then Freigabe = 0 ' sperren If Schrittweite < 5 Then Incr Schrittweite Pulseout Portd , 6 , 5000 End If Else If Tasten = &H04 Then Freigabe = 0 ' sperren If Schrittweite > 1 Then Decr Schrittweite Pulseout Portd , 6 , 5000 End If End If End If End If If Richtung = 1 Then If Schleife < 250 Then Schleife = Schleife + Schrittweite Waitms 10 else richtung = 0 End If Else If Schleife > 100 Then Schleife = Schleife - Schrittweite Waitms 10 else richtung = 1 End If End If Compare1a = Schleife Zwischenwert = 350 - Schleife Compare1b = Zwischenwert Loop End
das mit dem zwischenwert ist nur sicherheitshalber, ich bin nicht sicher, ob Bascom sonst richtig reagiert, weil ja Compare1b ein BYte ist, "350" aber nicht







Zitieren

Lesezeichen