PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : falsche Auswertung Int0



kleinstar
12.05.2007, 12:59
Hallo, ich habe folgendes Problem:
ich möcjte mit dem m32, rncontrol eine Frequenz messen,
dazu möchte ich erstmal überprüfen, ob die flanken richtich gezählt werden:

Enable Interrupts
Enable Int0
Config Int0 = Falling

Flankenzahl = 0

On Int0 Irq

Do
Lcd_clr
Stemp = "flanken:" + Str(flankenzahl)
Schreibe Stemp
Waitms 300
Loop

'Disable Int0
'Disable Interrupts

Irq:
Incr Flankenzahl
Return

aber wenn ich den int 0 nur anfass, zählt er gleich um ... hoch.
Wenn ich einen Pullup Widerstand (1,4k) anschließ, ist es schon wesentlich besser, verzählt sich aber immernoch (nichtmehr wennich von hand anfass)

wie groß soll denn der Pullup sein (wieviel mA verträgt der Eingang)? gibtes beim int0 einen internen pullup?

oder gibt es eine andere Möglichkeit die Zählfehler zu verhindern?

sollte ich lieber einen anderen nicht-interrupt eingang zur Frequenzmessung verwenden?
hab sehr viele Fragen;)
Danke schonmal im vorraus
der Roland

PicNick
12.05.2007, 13:40
Das mit dem Anfassen oder irgendwelche fliegenden Drähte erzeugen saumäßige Signalflanken, da passiert dann sowas.
Entweder Entprellen (debounce) oder gar nix, denn wenn das, was du messen willst, ordentlich Impulse liefert, verschwindet der Fehler von alleine.

kleinstar
12.05.2007, 15:16
danke,
das hört sich gut an, geh montach ins labor mit generator und oszi, da guckich genauer rum..
kann das sein, das man mit config debounce=.. die zeit in ms einstellt, und dann alles ignoriert wird und zum label springt..?

brauch ich überhaupt den interrupt, is das zu problembehaftet und soll lieber was andres nehmen?

Grüße

PicNick
12.05.2007, 16:40
Das mit dem Debouncen wirst du vermutl. nicht brauchen, bzw. brauchen können. Denn wenn du 1 mS debounced, kannst du ja nicht mehr als max 500 Hz zählen, das ist ja wohl nix.
Übrigens: Zumindest beim Bascom ist das Debouncen im Widerspruch zu Interrupt. das macht er nicht mit.

Interrupt: Na, besser als Pins pollen ist das allemal.

Ein AVR hat allerdings auch eine Counter-funktion, kannst du mal nachlesen.

kleinstar
12.05.2007, 17:35
dankeschön klingt alles ganz gut,
ich les mich auch grad in timer mit capture ein..
immer großes dankeschön and den Herrn Visionär!