So,
ich versuche mal den Quelltext zu Kommentieren... dann sollte jeder
sehen, daß das ganz einfach zu verstehen ist.
Code:
#######################################################
$regfile = "m32def.dat" // Include Datei für Registerdefinitionen
' bei Mega 16 $regfile = "m16def.dat"
$framesize = 32 // Irgendwelche Einstellungen für Bascom
$swstack = 32 // Stack?!?!
$hwstack = 32 // Stack?!?!
$crystal = 16000000 'Quarzfrequenz //Quarzfrequen
$baud = 9600 // Serielle Schnittstelle
Config Int0 = Falling // INT0 bei fallender Flanke an PIN.d2
Config Timer1 = Timer, Prescale = 256 // Timer1 einstellen
Const Timervorgabe = 3036 //Konstante definieren
Const Markierungenproscheibe = 120 //DITO
Dim Zaehlerirq0 As Long // Variable deklarieren
Dim Impulseprosekunde As Long //dito
Dim Impulseprominute As Long //dito
Dim Umdrehungenprominute As Integer //dito
Print //
Print "* RN-Control 1.4 *" //
Print "Drehzahl Messung"; "" // Text ausgeben
Zaehlerirq0 = 0 //Variable=Wert
On Int0 Irq0 // Bei INT0 die Subroutine "Irq0" aufrufen
Enable Int0 // INT0 einschalten
On Timer1 Timer_irq //Bei Timer1-Int die Sub "Timer_irq" aufrufen
Enable Timer1 //Timer1-Int einschalten
Enable Interrupts // Alle Interrupts freigeben
Do // Endlosschleife
Print //
Print "Impulse Sek: "; Impulseprosekunde // Text und Variable ausgeben
Impulseprominute = Impulseprosekunde * 60 // Irgendwas rechnen
Umdrehungenprominute = Impulseprominute / Markierungenproscheibe //dito
Print "Umdreh. Min: "; Umdrehungenprominute //Text und Var ausgeben
Wait 3 //Warten
Loop //Endlosschleife-Ende
End // Ende des Hauptprogramms
'Pro Impuls (Markierung auf Scheibe) ein Aufruf
Irq0: //Subroutine "Irq0"
Incr Zaehlerirq0 //Variable um eins erhöhen
Return // Zurück zum Hauptprogramm
'Pro Sekunde ein Aufruf
Timer_irq: //Subroutine
Timer1 = Timervorgabe // Timer1 mit Wert laden
Impulseprosekunde = Zaehlerirq0 // irgendwas rechnen
Zaehlerirq0 = 0 // Var=Wert
Return // Zurück zum Hauptprogramm
######################################
Gruß,
SIGINT
Lesezeichen