michi73
03.05.2005, 20:01
Kann mir einer Helfen, ich habe folgendes Problem:
Ich möchte den Timer1 als Zähler für Impulse nutzen und danach die Impulse umrechnen als Drehzahl. Dies Klappt auch schon sehr gut.
Aber wie kann ich den Timer1 bzw die Interrupts wieder stoppen um ein neuen Teil im Programm ablaufen zu lassen ohne das er weiter in den Interrupts springt?
Ich folgendes Programm geschrieben:
'Programm zur Drehzahlerfassung mit Timer1 zum Zählen
'Ausgabe auf der seriellen Schnittstelle (Frequenz)
'----------------------------------------------------------
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 3686400
$baud = 9600 'Quarz: 3,6864 MHz
Ddrd = &B11000000
Portd.5 = 1
Portd.2 = 1
Mcucr = &B00001010
Gicr = &B11000000
Dim A As Integer
Dim B As Long
A = 0
B = 0
On Timer1 Ontimer1
On Int0 Zaehlen
Config Timer1 = Timer , Prescale = 256
Enable Timer1
Enable Interrupts
'----------------------------------------------------------
Do
Loop
'----------------------------------------------------------
Zaehlen:
A = A + 1
Return
Ontimer1:
Print " Gezaehlte Impulse= ";
Print A;
Print " errechnete Geschwindigkeit(U/min-1)=";
B = A * 60
Print B;
Timer1 = 51143
A = 0
Return
Michael O:)
Ich möchte den Timer1 als Zähler für Impulse nutzen und danach die Impulse umrechnen als Drehzahl. Dies Klappt auch schon sehr gut.
Aber wie kann ich den Timer1 bzw die Interrupts wieder stoppen um ein neuen Teil im Programm ablaufen zu lassen ohne das er weiter in den Interrupts springt?
Ich folgendes Programm geschrieben:
'Programm zur Drehzahlerfassung mit Timer1 zum Zählen
'Ausgabe auf der seriellen Schnittstelle (Frequenz)
'----------------------------------------------------------
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 3686400
$baud = 9600 'Quarz: 3,6864 MHz
Ddrd = &B11000000
Portd.5 = 1
Portd.2 = 1
Mcucr = &B00001010
Gicr = &B11000000
Dim A As Integer
Dim B As Long
A = 0
B = 0
On Timer1 Ontimer1
On Int0 Zaehlen
Config Timer1 = Timer , Prescale = 256
Enable Timer1
Enable Interrupts
'----------------------------------------------------------
Do
Loop
'----------------------------------------------------------
Zaehlen:
A = A + 1
Return
Ontimer1:
Print " Gezaehlte Impulse= ";
Print A;
Print " errechnete Geschwindigkeit(U/min-1)=";
B = A * 60
Print B;
Timer1 = 51143
A = 0
Return
Michael O:)