Oh, manchmal hat man einfach ne
vorm Kopf
. Aber in Bascom Hilfe ist das extrem verwirrend, keine Angaben was man wie einzustellen hat und kein Beispiel. Im RN-Wissensbereich ist das aber sehr gut erklärt, vielen Dank Roberto (Der Autor^^)
EDIT:
Hallo nochmal, ich hab jetzt aber doch ein Problem: Ich habe folgendes Programm in meinen Robby reingeschrieben:
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Config Portb.0 = Output
Config Portb.1 = Output
Config Portc.0 = Output
Config Pind.2 = Input
Config Timer1 = Timer , Prescale = 256
On Timer1 Isr_von_t1
Enable Interrupts
Timer1 = 34285
Dim X As Byte
Main:
Do
If Pind.2 = 1 Then 'Wenn ein Taster gedrückt wird
Enable Timer1 'wird der Timer angeschalten
Portc.0 = 0
Portb.0 = 1 'Die LED soll low bleiben
Portb.1 = 1 'die beiden Motoren gegen an
End If
If X = 5 Then
Gosub Stopp 'wenn x = 5 dann zum Unterprogramm stopp
End If
Loop
Isr_von_t1: 'Unterprogramm wird aufgerufen wenn T1 overflow hat
X = X + 1 'zu x wird eins addiert
Timer1 = 34285 'der timer soll wieder bei 34258 anfangen zu zählen
Toggle Portc.0 'Die LED wird umgeschalten
Return 'Return in die Main-schleife
Stopp:
Stop Timer1 'der timer wird gestoppt
X = 0 'X wird auf 0 zurückgesetzt
Portb.0 = 0 'die beiden Motoren gegen aus
Portb.1 = 0
Gosub Main 'Und man kehrt in das Main-Programm zurück
Dann drücke ich den Taster: Alles wunderbar es funktioniert und nach 5 Sekunden stehen die Motoren wieder still. Wenn ich dann jedoch noch mal die Taste drücke dann laufen die Motoren an aber weder die LED blinkt noch stoppen die Motoren nach 5 Sekunden sondern laufen Munter weiter... Findet jemand einen Fehler in meinem Programm?? Also ich finde keinen...
Gruß, Felix
Lesezeichen