PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupt Spinnt mit 50Hz?



Brantiko
29.09.2008, 23:10
Hallo!
Ich habe gerade mal probiert die Drehzahlmessung aus dem Wiki zum laufen zu bringen.
Komischerweise bekommt der Chip offenbar mit ~50Hz einen Interrupt und das obwohl INT0 zu Testzwecken in der Luft hängt.



Zaehlerirq0 = 0
On Int0 Irq0
Enable Int0

On Timer1 Timer_irq
Enable Timer1

Enable Interrupts


Do
Print
Print "Impulse Sek: " ; Impulseprosekunde
Wait 1
Loop

End




'Pro Impuls (Markierung auf Scheibe) ein Aufruf
Irq0:
Incr Zaehlerirq0
Return


'Pro Sekunde ein Aufruf
Timer_irq:
Timer1 = Timervorgabe
Impulseprosekunde = Zaehlerirq0
Zaehlerirq0 = 0
Return



Der Timer ist auf 1Hz gestellt.
Per UART bekomme ich meist ne Zahl zwischen 50 und 60 ausgegeben - eigentlich müsste es doch null sein? Woran kann das liegen?

Gruss

Alex

Besserwessi
29.09.2008, 23:24
Ein offener Eingang kann sich sehr leicht 50 Hz einfangen. Ich weiß jetzt aber nicht, ob das Programm in U/min oder Hz anzeigt.

Brantiko
30.09.2008, 00:03
Meine Version zeigt erst mal nur Hz an, eine Variable wird eine Sekunde lang bei jedem Interupt hochgezählt..
Was kann ich dagegen tun?

Rofo88
30.09.2008, 00:15
Komischerweise bekommt der Chip offenbar mit ~50Hz einen Interrupt und das obwohl INT0 zu Testzwecken in der Luft hängt.

Der offene Eingang wirkt wie einen Antenne und fängt sich sachen aus der Luft ein. Lege den mal definiert auf Masse oder VCC und dann ist ruhe.

MfG RoFo

Brantiko
30.09.2008, 00:34
Wie kann ich dann noch ne fallende Flanke messen?

Ceos
30.09.2008, 02:45
indem du einen widerstand > dem widerstand der schaltquelle(impulserzeuger) verwendest, das ist dann ein spannungsteiler

stefan_Z
01.10.2008, 01:19
Hihi, die Eingänge sind recht empfindlich... Und wenn man den INT offen läßt, dann fängt der sich ganz schnell mal die Netzfrequenz ein.
Halte mal deinen Finger in die Nähe des Pins.. dann gehts weg.

Was für nen Impulsgeber nutzt du?
Wenn der nach VCC schaltet, dann leg nen Pulldown an den INT, ansonsten nen Pullup.