Zitat:
$regfile = "m8def.dat" 'AtMega8
$crystal = 16000000 '16Mhz Quartz
Dim Verzoegerung As Integer 'Verzögerung = erhöhen der Timerdifferenz
Dim Z As Integer 'Z = Zähler zum entprellen des Tasters (Entpreller)
Ddrd = &B11100000 'Ein und Ausgabeports definieren
Verzoegerung = 0 'Zum Start keine Verzögerung
Config Timer1 = Timer , Prescale = 64'Timer1 auf den aktuellen Timer setzen, Teiler 64
Enable Timer1 'Timer aktivieren
On Timer1 Isr_von_timer1 'Wenn der Timer überläuft zu Interrupt wechseln
Enable Interrupts 'Interruptbehandlung starten
Timer1 = 64000 - Verzoegerung 'Pulslänge =65535 - 64000 - 0
Do 'Hauptprogramm
If Pind.2 = 1 Then 'Wenn Taster 1 gedrückt dann....
Z = Z + 1 'Entpreller hochzählen
If Z = 100 Then 'wenn Du genug geprellt hast gehts weiter :)
Z = 0 'Entpreller zurücksetzen
Verzoegerung = Verzoegerung + 1 'Verzögerung erhöhen
End If
End If
If Pind.3 = 1 Then 'Wenn Taster 2 gedrückt dann...
Z = Z + 1 'Entpreller hochzählen
If Z = 100 Then 'wenn Du genug geprellt hast gehts weiter :)
Z = 0 'Entpreller zurücksetzen
Verzoegerung = Verzoegerung - 1 'Verzögerung verringern
End If
End If
Loop
End
Isr_von_timer1: 'Interrupt Service
Timer1 = 64000 - Verzoegerung ' Timer1 auf Startwert setzen
Toggle Portd.6 ' Toggle an Portd.6
Return