Archiv verlassen und diese Seite im Standarddesign anzeigen : Pic Counter
Hallo zusammen,
Ich habe einen PIC ds30f4011 und möchte nun die Flanken am Eingang RD0
zählen.
Wie mach ich das ???
kann mir jemand helfen ??
hagbart06
23.02.2012, 14:27
Es gibt eigentlich nur zwei Möglichkeiten:
Entweder den Pin permanent mit einer if abfrage überprüfen (Polling) und bei wahr werden der Abfrage wird die Variable inkrementiert.
Der schönere Weg ist es den Interrupt zu nutzen der von RD0 (Int1) erzeugt wird und dann bei jedem Interrupt eine Variable inkrementieren zu lassen.
Wie gesagt sollte man den Interrupt bevorzugen, aber wenn der PIC sowieso nicht ausgelastet ist kann man auch mit Polling arbeiten.
Hallo
ok Danke,
ich habe die Interrupt Methode gewält...
Jedoch habe ich noch ein Problem und zwar
werden die Werte nur in 10 Schritte ausgegeben auf dem Display
was kann da falsch sein ???
hagbart06
23.02.2012, 18:07
Kann man so pauschal jetzt auch schlecht sagen. Poste doch mal deinen Quellcode.
Wenn der Wert wirklich in Zehnerschritten inkrementiert wird könntest du ihn ja vor der Ausgabe wieder durch Zehn teilen!?
Hallo!
Möglicherweise wird die Displayausgabe bei dir 10 mal per Interrupt unterbrochen und der Wert in ISR erhöht. ;)
und wie kann ich das beheben ??
Was ist ISR ??
hagbart06
24.02.2012, 11:30
Die Isr ist die InterruptServiceRoutine. Sprich dir function die abgearbeitet wird wenn ein Interrupt ausgelöst wird. Wahrscheinlich liegt hier der Fehler. Poste doch mal deinen code. Was für eine Frequenz hat dein zu messendes Signal? Wenn es von einem Taster kommt ist es entprellt?
Hallo,
ich habe den Fehler gefunden
danke
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.