kleinstar
14.05.2007, 21:27
Hi,
ich habe eine Routine, mit der ich die Frequenz messen kann:
Sub Messen()
Config Int0 = Falling
Flankenzahl = 0
Messzeit = 50000000 '20000000
Timervorgabe = 53036 'für 50ms ' 25536 für 20ms ' 55536 für 5ms
Do
Enable Interrupts
Enable Int0
Enable Timer1
Portd.2 = 1
Config Timer1 = Timer , Prescale = 64 'für 50ms'8 für 20ms ' messzeit 5ms
Timer1 = Timervorgabe
On Timer1 Isr_von_timer1
On Int0 Irq
Waitms 500
Lcd_clr
Stemp = "imp=" + Str(flankenzahl)
Schreibe Stemp
Lcd_cursor 1 , 3
Stemp = "fre=" + Str(frequenz())
Schreibe Stemp
Flankenzahl = 0
Wait 2
Loop
Irq:
Incr Flankenzahl
Return
Isr_von_timer1:
'Timer1 = Timervorgabe
'Toggle Portc.0
Impulsepromesszeit = Flankenzahl
Disable Int0
Disable Interrupts
Return
ich messe mit einer Torzeit, die fallenden Flanken..
das Prog funktioniert gut bis auf:
-verzählt sich ganz klein wenig: bei 2000 Flanken verzählt sichs um ca 4
(das ist ganz wenig und scheint kein Grundlegender Fehler zu sein und ist scheinbar nicht Frequenzabhängig)-->das ergebnis weicht ca 50-150 Hz ab
- das Prog funzt nur bis ca 105khz, danach spinnt die anzeige rum (lcd ausgabe)
Hat da jemand vielleicht ne Idee,wie man das eine oder andere wegbekommt, würd mich sehr freuen..!
Grüße Roland
ich habe eine Routine, mit der ich die Frequenz messen kann:
Sub Messen()
Config Int0 = Falling
Flankenzahl = 0
Messzeit = 50000000 '20000000
Timervorgabe = 53036 'für 50ms ' 25536 für 20ms ' 55536 für 5ms
Do
Enable Interrupts
Enable Int0
Enable Timer1
Portd.2 = 1
Config Timer1 = Timer , Prescale = 64 'für 50ms'8 für 20ms ' messzeit 5ms
Timer1 = Timervorgabe
On Timer1 Isr_von_timer1
On Int0 Irq
Waitms 500
Lcd_clr
Stemp = "imp=" + Str(flankenzahl)
Schreibe Stemp
Lcd_cursor 1 , 3
Stemp = "fre=" + Str(frequenz())
Schreibe Stemp
Flankenzahl = 0
Wait 2
Loop
Irq:
Incr Flankenzahl
Return
Isr_von_timer1:
'Timer1 = Timervorgabe
'Toggle Portc.0
Impulsepromesszeit = Flankenzahl
Disable Int0
Disable Interrupts
Return
ich messe mit einer Torzeit, die fallenden Flanken..
das Prog funktioniert gut bis auf:
-verzählt sich ganz klein wenig: bei 2000 Flanken verzählt sichs um ca 4
(das ist ganz wenig und scheint kein Grundlegender Fehler zu sein und ist scheinbar nicht Frequenzabhängig)-->das ergebnis weicht ca 50-150 Hz ab
- das Prog funzt nur bis ca 105khz, danach spinnt die anzeige rum (lcd ausgabe)
Hat da jemand vielleicht ne Idee,wie man das eine oder andere wegbekommt, würd mich sehr freuen..!
Grüße Roland